Introduction to Object-Oriented Programming in Alice and Java

Slides:



Advertisements
Similar presentations
Introduction to Object-Oriented Programming in Alice and Java
Advertisements

Introducing Java CSC1401. Course Goals Teaching programming concepts In a “real” language.
Alice: A Free 3D Animation World for Teaching Programming Barbara Ericson Georgia Institute of Technology Oct 2005.
01-Intro-Object-Oriented-Prog-Alice1 Barb Ericson Georgia Institute of Technology Aug 2009 Introduction to Object-Oriented Programming in Alice.
TOPIC 3 INTRODUCTION TO PROGRAMMING 1 Notes adapted from Introduction to Computing and Programming with Java: A Multimedia Approach by M. Guzdial and B.
04-Intro-Object-Oriented-In-Java1 Barb Ericson Georgia Institute of Technology Sept 2009 Introduction to Object-Oriented Programming in Java.
Getting Started With Alice By Ruthie Tucker under the direction of Prof. Susan Rodger Duke University, July
Introduction to Programming Writing Java Beginning Java Programs.
Programming with Alice Computing Institute for K-12 Teachers Summer 2011 Workshop.
Georgia Institute of Technology Barb Ericson Georgia Institute of Technology May 2006 Teaching Java using Turtles part 1.
TOPIC 3 INTRODUCTION TO PROGRAMMING 1 Notes adapted from Introduction to Computing and Programming with Java: A Multimedia Approach by M. Guzdial and B.
Getting started with Alice Adapted from presentations by Jenna Hayes, Duke University Donna Gavin, UWP Computer Science and Software Engineering.
Alice 2.0 Introductory Concepts and Techniques Project 1 Exploring Alice and Object-Oriented Programming.
Methods in Java CSC1401. Overview In this session, we are going to see how to create class-level methods in Java.
Georgia Institute of Technology Barb Ericson Georgia Institute of Technology May 2006 Teaching Java using Turtles part 2.
Georgia Institute of Technology Declaring Variables – Mod 4 Barb Ericson Georgia Institute of Technology August 2005.
Introduction to Using the Notebook 10 Software for SMART Board Day 2 LIVINGSTON PARISH PUBLIC SCHOOLS Facilitated by S. Waltman.
Java Introduction part 2 CSC1401. Overview In this session, we are going to examine some of the instructions from the previous class in more detail.
Introduction to Programming Writing Java Beginning Java Programs.
Georgia Institute of Technology Declaring Variables – Mod 4 Barb Ericson Georgia Institute of Technology August 2005.
CreatingSubclasses1 Barb Ericson Georgia Institute of Technology Dec 2009.
Georgia Institute of Technology Simulations Barb Ericson Jan 2005.
Variables and Functions Alice. Naming is Important If you get a new pet one of the first things you do is name it Gives you a way to refer to the new.
Learning to Program: Part 1 Scene Setup and Starting Animation by Ruthie Tucker and Jenna Hayes Under the direction of Professor Susan Rodger Duke University,
Georgia Institute of Technology Barb Ericson Georgia Institute of Technology Aug 2006 Introduction to Object-Oriented Programming in Alice and Java.
Alice: A Free 3D Animation World for Teaching Programming.
Georgia Institute of Technology More on Creating Classes part 3 Barb Ericson Georgia Institute of Technology Nov 2005.
Georgia Institute of Technology Barb Ericson Georgia Institute of Technology Sept 2006 Introduction to Object-Oriented Programming in Alice and Java.
Creating a Simple Game in Scratch Barb Ericson Georgia Tech May 2009.
Georgia Institute of Technology Dr Usman Saeed Assistant Professor Faculty of Computing and Information Technology North Jeddah Branch King Abdulaziz University.
Georgia Institute of Technology More on Creating Classes Barb Ericson Georgia Institute of Technology June 2006.
Appendix A Barb Ericson Georgia Institute of Technology May 2006
Development Environment
Scratch for Interactivity
An Introduction to Alice (Short Version)
Appendix A Barb Ericson Georgia Institute of Technology May 2006
Declaring Variables – Mod 4
Creating and Modifying Text part 2
Barb Ericson Georgia Institute of Technology Dec 2009
Introduction to Object-Oriented Programming in Alice and Java
Introduction to Object-Oriented Programming in Java
Graphics Movies & Games
MS PowerPoint 2010 Week 2.
Learning to program with Logo
Learning Java with Alice 3.0 Game Design Kathy Bierscheid
Teaching Java using Turtles part 1
Declaring Variables – Mod 4
Teaching Java using Turtles part 2
Making Objects Move in Unison: Using Lists
Teaching Java using Turtles part 3
An Introduction to Alice
Declaring Variables – Mod 4
Barb Ericson Georgia Institute of Technology Oct 2005
Workshop for Programming And Systems Management Teachers
Alice: A Free 3D Animation World for Teaching Programming
Introduction to Object-Oriented Programming in Alice
Getting Started With Alice
Alice: A Free 3D Animation World for Teaching Programming
Barb Ericson Georgia Institute of Technology June 2005
Workshop for Programming And Systems Management Teachers
More on Creating Classes
More on Creating Classes part 3
Making Objects Move in Unison: Using Lists
Creating a Simple Game in Scratch
Teaching Java using Turtles
Teaching Java using Turtles part 2
Workshop for Programming And Systems Management Teachers
Presentation transcript:

Introduction to Object-Oriented Programming in Alice and Java Barb Ericson Georgia Institute of Technology Aug 2006 Georgia Institute of Technology

Georgia Institute of Technology Learning Goals To introduce computation as simulation To introduce Alice To talk about the history of using turtles to teach programming To show how to create objects in Alice To show how to invoke methods on objects in Alice To show how to add classes to the classpath in DrJava To create objects in Java To invoke methods on objects in Java Georgia Institute of Technology

Computers as Simulators “The computer is the Proteus of machines. Its essence is its universality, its power to simulate. Because it can take on a thousand forms and serve a thousand functions, it can appeal to a thousand tastes.” Seymour Papert in Mindstorms Georgia Institute of Technology

Georgia Institute of Technology Creating a Simulation Computers let us simulate things We do this by creating models of the things we want to simulate We need to define what types of objects we will want in our simulation and what they can do Classes define the types and create objects of that type Objects act in the simulation Georgia Institute of Technology

Georgia Institute of Technology Running a Simulation How many objects does it take to get a person fed at a restaurant? Pick people to be the customer, greeter/seater, waiter, chef, and cashier and have them role play What data does each of these people need to do their job? What do they need to know how to do? What other objects do you talk about? How about simulating going to a dentist? Or to the movies? Georgia Institute of Technology

Georgia Institute of Technology Introduction to Alice Free development environment From Carnegie Mellon University Available from http://www.alice.org Used to create 3D movies 3D games Georgia Institute of Technology

Georgia Institute of Technology Getting Started Install Alice Copy folder from CD Start Alice Double Click on Icon (Alice.exe) Wait for Alice to start Can take a few minutes Georgia Institute of Technology

Georgia Institute of Technology Turning On Java Syntax Click in Edit and then Preferences Change the display my program: from Alice Style to Java Style in Color Quit Alice and start it up again It will keep this setting until you change it again Georgia Institute of Technology

Georgia Institute of Technology Pick a World Click on the Examples tab And click on a world to open it You might need to scroll down to see this world Georgia Institute of Technology

Georgia Institute of Technology Playing the Movie To play a saved movie Click the Play button The movie or game will start to play in a separate window Click on target to play this movie Most example worlds will just start to play Georgia Institute of Technology

Georgia Institute of Technology Create Your Own Movie Click on File Then New World Click on a template Background and ground type Georgia Institute of Technology

Add Objects To the World Click the Add Objects button Select a category from the Local Gallery Select Local Gallery to get back from a category To the list of categories Georgia Institute of Technology

Add Objects to the World Click on the item to select it Click on the Class description Click Add Instance to world Button Or drag the object from the class description and drop it into position in the world Georgia Institute of Technology

Position an Object in the World Once the object is in the world You can move it by Dragging it with the mouse Or using the mouse controls Click the Undo button to undo the last action Georgia Institute of Technology

Georgia Institute of Technology Mouse Controls Use mouse control buttons (from left to right) To move object left, right, forward, back Up and down Turn left or right Turn forward or backwards Tumble the object (free rotation) Resize object Copy the object Georgia Institute of Technology

Georgia Institute of Technology Create More Objects You can use the copy object mouse control Or add another instance to the world Click on the Class Click on the Add instance to world button Or drag another object from the class description Georgia Institute of Technology

Georgia Institute of Technology Objects and Classes You can make many objects of the same class The class creates the object Each object will have a unique name in the object window Class names start with a capital letter Object names start with a lower case letter Georgia Institute of Technology

Telling Objects To Do Things Click the Done button to stop adding objects Click on a reference to an object in the object window to select it Click on the Methods tab to see what it can do Georgia Institute of Technology

Georgia Institute of Technology Messages to Objects In object-oriented programming we send messages to objects Ask them to do a method Drag a method from the left to the middle window (world - my first method) Georgia Institute of Technology

Georgia Institute of Technology Who does the action? We had selected bunny in the object window So only bunny does the action How do you think we can get bunny2 to do the same action? Georgia Institute of Technology

Moving Several Objects To get bunny2 to move Select bunny2 in the objects window Or just click on it Then select the method tab Drag out the same methods for bunny2 Click play to see what happens Georgia Institute of Technology

Georgia Institute of Technology Deleting an Object Click on the object you want to delete The object will be displayed with a bounding box around it Click the right mouse button Select delete from the pop-up menu Georgia Institute of Technology

Georgia Institute of Technology Using Turtles in Java We will work with Turtles in a World in Java We have to define what we mean by a Turtle to the computer We do this by writing a Turtle class definition Turtle.java We compile it to convert it into something the computer can understand Bytes codes for a virtual machine Turtle.class Georgia Institute of Technology

Georgia Institute of Technology History of Turtles Seymour Papert at MIT in the 60s By teaching the computer to do something the kids are thinking about thinking Develop problem solving skills Learn by constructing and debugging something Learn by making mistakes and fixing them Seymour was also involved in the invention of the Logo programming languages. Georgia Institute of Technology

Georgia Institute of Technology Using Turtles The Turtle Class was is part of several classes created at Georgia Tech As part of an undergraduate class Add bookClasses to your classpath to use these classes This set of turtle clip art was created by Robert Savannah, an artist working for the U. S. Fish and Wildlife Service. You can find it at http://greennature.com/article1775.html. Georgia Institute of Technology

Open Preferences in DrJava Open the preferences window to add the book classes to the classpath. The classpath tells Java where to look for classes. Georgia Institute of Technology

Adding Book Classes to Classpath Add bookClasses directory Be sure to add the bookClasses directory and not bookClasses\bookClasses. Also you often need to close DrJava and start it again in order to get the new classpath. Click on Add Georgia Institute of Technology

Georgia Institute of Technology Creating Objects To create objects we ask the object that defines the class to create it Each object keeps a reference to the class that created it The class is like a cookie cutter It knows how much space each object needs (shape) Many objects can be created from the class World Object 1 World Object 2 World: Class Georgia Institute of Technology

Class as Object Factory A class is like a factory that creates objects of that class We ask a class to create an object by using the keyword: new ClassName We can also ask the class to initialize the object And pass data to help initialize it Georgia Institute of Technology

Creating Objects in Java In Java to create an object of a class you use new Class(value, value, …); Our Turtle objects live in a World object We must create a World object first Try typing the following in the interactions pane: new World(); Georgia Institute of Technology

Georgia Institute of Technology Creating Objects If you just do new World(); You will create a new World object and it will display But you will not have any way to refer to it again Once you close the window the object can be garbage collected The memory can be reused We need a way to refer to the new object to be able to work with it again The object is created and is in computer memory but we don’t have a way to find where it is. Georgia Institute of Technology

Georgia Institute of Technology Naming is Important If you get a new pet one of the first things you do is name it Gives you a way to refer to the new pet without saying Please take that dog we got yesterday for a walk. Please take Fifi for a walk. In programming we name things we want to refer to again Gives us a way to work with them Like the World object In programming this is called declaring a variable Georgia Institute of Technology

Georgia Institute of Technology Declaring a Variable To be able to refer to an object again we need to specify what type of thing it is and give it a name This is also called declaring a variable Type name; OR Type name = new Class(value, value, …); The equal sign doesn’t mean equal But assign the value of the variable on the left to the result of the stuff on the right The following creates a variable named earth which refers to a World object created on the right World earth = new World(); A reference to an object is a way to calculate the address of the object in memory. It is not the address of the object. References are not pointers. Georgia Institute of Technology

Georgia Institute of Technology Declaring Variables Variables are names associated with values If the type of the variable is null It doesn’t refer to an object yet Variables can be reused World earth = null; earth = new World(); null earth World Object 1 earth earth World Object 2 Georgia Institute of Technology

A Variable Associates a Name with Space A variable is like a box with a label on it You can put something in a box You can take something out of a box You can even change what is in the box The size of the box restricts what you can put in it Hat Box Georgia Institute of Technology

Limits on Declaring Variables You can't declare two variables with the same name! > World earth = new World(); Error: Redefinition of 'earth' You can change what an object variable refers to > earth = new World(); The first example would try to name two different boxes with the same name. But, then how would you know which one is the right one when someone refers to that name? Georgia Institute of Technology

Declaring Variables and Creating Objects You can declare a variable and assign it to refer to a new object in one statement World earth1 = new World(); Turtle tommy = new Turtle(earth1); Declaration of variables Creating the objects Georgia Institute of Technology

Georgia Institute of Technology Turtle Basics The world starts off with a size of 640 by 480 With no turtles World earth1 = new World(); The turtle starts off facing north and in the center of the world by default You must pass a World object when you create the Turtle object Or you will get an error: java.lang.NoSuchMethodException: Turtle constructor Turtle tommy = new Turtle(earth1); A turtle must be created in a world or you will get an error java.lang.NoSuchMethodException: Turtle constructor. Georgia Institute of Technology

Java Naming Conventions Notice that we capitalize the names of the classes, but not the variable names World earth1 = new World(); This is different than English Capitalize proper nouns (the names of things) Not the type of thing Earth is a world. Tommy is a turtle. In Java it is the class names that are the most important Not the variable or method names Georgia Institute of Technology

Creating Several Objects You can create several World objects World mars = new World(); You can create several Turtle objects Turtle shar = new Turtle(mars); Turtle jen = new Turtle(mars); One turtle is on top of the other Turtles cycle through 4 different colors. The 5th turtle you create will have the same color as the first turtle. Georgia Institute of Technology

Georgia Institute of Technology Moving a Turtle Turtles can move forward jen.forward(); The default is to move by 100 steps (pixels) You can also tell the turtle how far to move shar.forward(50); Passing the amount to move forward by is also called passing a parameter. Georgia Institute of Technology

Georgia Institute of Technology Turning a Turtle Turtles can turn Right jen.turnRight(); jen.forward(); Left shar.turnLeft(); shar.forward(50); Turtles turn by 90 degrees by default. Georgia Institute of Technology

Georgia Institute of Technology Turning a Turtle Turtles can turn by a specified amount A positive number turns the turtle the right jen.turn(90); jen.forward(100); A negative number turns the turtle to the left shar.turn(-90); shar.forward(70); Georgia Institute of Technology

Georgia Institute of Technology The Pen Each turtle has a pen The default is to have the pen down to leave a trail You can pick it up: turtle1.penUp(); turtle1.turn(-90); turtle1.forward(70); You can put it down again: turtle1.penDown(); turtle1.forward(100); Georgia Institute of Technology

Georgia Institute of Technology Drawing a Letter How would you use a turtle to draw a large letter T? Process Create a World variable and a World object and a Turtle variable and object. Ask the Turtle object to go forward 100 Ask the Turtle object to pick up the pen Ask the Turtle object to turn left Ask the Turtle object to go forward 25 Ask the Turtle object to turn 180 degrees Ask the Turtle object to put down the pen Ask the Turtle object to go forward 50 You can do these in the interactions pane. Georgia Institute of Technology

Georgia Institute of Technology Drawing a T World world1 = new World(); Turtle turtle1 = new Turtle(world1); turtle1.forward(100); turtle1.penUp(); turtle1.turnLeft(); turtle1.forward(25); turtle1.turn(180); turtle1.penDown(); turtle1.forward(50); Georgia Institute of Technology

Georgia Institute of Technology Moving to a Location 639 X A turtle can move to a particular location turtle1.penUp(); turtle1.moveTo(500,20); Coordinates are given as x and y values X starts at 0 on the left and increases horizontally to the right Y starts at 0 at the top of the window and increases to the bottom A new turtle starts out at 320,240 by default Y 479 There are 640 pixels in the width (0 to 639) and 480 in the height (0 to 479). Georgia Institute of Technology

Georgia Institute of Technology Challenge Create a World object Don’t forget to declare a variable to hold a reference to it Create a turtle object Use the turtle to draw a Rectangle (but, not a square) Diamond Hexagon Use the up arrow to reuse previous commands Georgia Institute of Technology

Georgia Institute of Technology Setting the Pen Width You can change the width of the trail the pen leaves World world1 = new World(); Turtle turtle1 = new Turtle(world1); turtle1.setPenWidth(5); turtle1.forward(100); You will need to reset the interactions pane before you try this. Click on the “Reset” button at the top of the window. Georgia Institute of Technology

Georgia Institute of Technology Setting the Pen Color Use setPenColor to set the color of the pen turtle1.setPenColor(java.awt.Color.RED); There are several predefined colors In the package java.awt A package is a group of related classes In the class Color To use them you can use the full name java.awt.Color.RED Other colors are java.awt.Color.BLACK, java.awt.Color.BLUE, java.awt.Color.GREEN, java.awt.Color.GRAY, java.awt.Color.YELLOW, java.awt.Color.ORANGE, java.awt.Color.CYAN, java.awt.Color.MAGENTA, java.awt.Color.WHITE Georgia Institute of Technology

Georgia Institute of Technology Setting Colors You can change the pen color turtle.setPenColor(java.awt.Color.RED); You can change the turtle color turtle1.setColor(java.awt.Color.BLUE); You can change the turtle’s body color turtle1.setBodyColor(java.awt.Color.CYAN); You can change the turtle’s shell color turtle1.setShellColor(java.awt.Color.RED); When you change the pen color all the lines drawn by that turtle will change to the new color. When you change the turtle color you are really changing the body color. The shell color will be a darker shade, if there is no specified shell color. Georgia Institute of Technology

Georgia Institute of Technology Objects can Refuse Turtles won’t move completely out of the boundaries of the world World world2 = new World(); Turtle turtle2 = new Turtle(world2); turtle2.forward(600); Georgia Institute of Technology

Georgia Institute of Technology Objects send Messages Objects don’t “tell” each other what to do They “ask” each other to do things Objects can refuse to do what they are asked The object must protect it’s data Not let it get into an incorrect state A bank account object shouldn’t let you withdraw more money that you have in the account Georgia Institute of Technology

Georgia Institute of Technology Creating a Method We can name a block of Java statements and then execute them again By declaring a method in a class The syntax for declaring a method is visibility returnType name(parameterList) Visibility determines access Usually public or private The return type is the type of thing returned If nothing is returned use the keyword void Name the method starting with a lowercase word and uppercasing the first letter of each additional word Georgia Institute of Technology

Georgia Institute of Technology Example Method public void drawSquare() { this.turnRight(); this.forward(30); } The visibility is public The keyword void means this method doesn’t return a value The method name is drawSquare There are no parameters Notice that the parentheses are still required The keyword this means the object this method was invoked on Georgia Institute of Technology

Adding a Method to a Class 1. Open file Turtle.java 3. Compile open files 2. Type the method before the last } // end To add a method to a class open the file that defines the class. Then add the method before the last curly brace in the file. Then compile the file by clicking on the Compile All button. Then you are ready to try out your method in the interactions pane. Georgia Institute of Technology

Georgia Institute of Technology Compile Errors Case matters in Java! turnright isn’t the same as turnRight You can click on each error. The definitions pane will go to that error and highlight the code that is in error. Common errors are wrong case, wrong name, wrong parameters, missing ending semicolon, and that the method is inside the class (before the last } in the file). After you fix any errors you will need to compile again. Keep compiling and fixing errors until there are no more errors. Clicking on the error takes you to the code and highlights it. Georgia Institute of Technology

Georgia Institute of Technology Try the New Method Compiling resets the interactions pane Clearing all variables But you can still use the up arrow to pull up previous statements You will need to create a world and turtle again World world1 = new World(); Turtle turtle1 = new Turtle(world1); turtle1.forward(50); turtle1.drawSquare(); turtle1.turn(30); Georgia Institute of Technology

Saving the Interactions History in DrJava You can save the interactions history into a script And optionally edit it first before you save it Click on Tools then on Save Interactions History And then latter load and execute the statements in the script Click on Tools and Load Interactions History as Script Use the next button to see the next statement and click on the execute button to execute it Georgia Institute of Technology

Better Method to Draw a Square A method to draw a square public void drawSquare() { int width = 30; this.turnRight(); this.forward(width); } We added a local variable for the width Only known inside the method This makes it easier to change the width of the square But, we still have to recompile to draw a different size square Georgia Institute of Technology

Testing the Better Method Type the following in the interactions pane World world1 = new World(); Turtle turtle1 = new Turtle(world1); turtle1.forward(50); turtle1.drawSquare(); turtle1.turn(30); Or use the saved script if you saved the last interactions history Georgia Institute of Technology

Georgia Institute of Technology Passing a Parameter public void drawSquare(int width) { this.turnRight(); this.forward(width); } Parameter lists specify the type of thing passed and a name to use to refer to the value in the method The type of this parameter is int The name is width Values are passed by making a copy of the passed value Adding parameters to methods makes them more reusable. Georgia Institute of Technology

Testing with a Parameter Type the following in the interactions pane World world1 = new World(); Turtle turtle1 = new Turtle(world1); turtle1.forward(50); turtle1.drawSquare(30); turtle1.turn(30); turtle1.drawSquare(50); Georgia Institute of Technology

Georgia Institute of Technology How Does That Work? When you ask turtle1 to drawSquare(30) turtle1.drawSquare(30); It will ask the Turtle Class if it has a method drawSquare that takes an int value And start executing that method The parameter width will have the value of 30 during the executing of the method The this keyword refers to turtle1 When you ask turtle1 to drawSquare(50) turtle1.drawSquare(50); The width will have a value of 50 The this refers to turtle1 (the object the method was invoked on) Georgia Institute of Technology

Georgia Institute of Technology Challenges Create a method for drawing a rectangle Pass the width and height Create a method for drawing an equilateral triangle all sides have the same length Pass in the length Create a method for drawing a diamond Create a method for drawing a house Using the other methods Create a method for drawing a school Georgia Institute of Technology

Creating a Method in Alice You added a method to the Turtle class to teach Turtle objects how to do draw a square You can create methods in Alice as well Let’s teach our bunny how to hop Click on bunny in the objects window Then click on the create new method button Georgia Institute of Technology

Georgia Institute of Technology Naming the Method We name Java methods starting with a lowercase letter So name this method hop Now drag in the commands to make the bunny hop The bunny should go up and forward and then go down and forward Use doTogether to do two things at the same time Use doInOrder to do things on after the other Georgia Institute of Technology

Georgia Institute of Technology Changing the Amount You can change the amount to go forward by Click on the downward arrow next to the current amount Pick one of the values or use other to enter a number Georgia Institute of Technology

Georgia Institute of Technology Try Out the Method Click on the world.my first method tab This is the method that runs when you click on play Drag in the hop method Click play to try it And see what it does Georgia Institute of Technology

Georgia Institute of Technology Having bunny2 hop If you click on bunny2 it won’t have the hop method It was created before you added this method to the Bunny class So delete bunny2 Click right on it and select delete Click on the add objects button to get the mouse controls back And make a copy of bunny And position it with the mouse controls Then click the done button Georgia Institute of Technology

Georgia Institute of Technology Adding bunny2 hopping Click on bunny2 in the objects window Click the method tab See that bunny2 now has a hop method as well Drag the hop method to the world.my first method There is an implicit doInOrder around these Georgia Institute of Technology

Adding parameters to Alice Methods To add a parameter to a method in Alice Click on the method tab Click on the create new parameter button Name the parameter and pick the type Change the code to use the parameter Click down arrow and pick expressions and then the parameter Georgia Institute of Technology

Trying a Method with a Parameter Specify the value for the parameter when the method is called You can’t use this new method with bunny2 Since it was created before you changed the method So delete bunny2 and create a new copy of bunny Georgia Institute of Technology

Creating Subclasses in Alice When you create a new method in Alice or modify an existing method You are in affect creating a new subclass that has that method or that version of the method A subclass inherits the fields and methods from the parent class but can add new fields and methods or change inherited ones You should name and save this subclass So you can reuse it Georgia Institute of Technology

Saving a Subclass in Alice Rename the variable that refers to the object Right click on it in the Object tree and select rename Save the class Right click on the object in the Object tree and select save object It will save the class definition which starts with an upper case letter Georgia Institute of Technology

Georgia Institute of Technology Use Subclass in Alice Select File and then Import And select the class file you created This will automatically add an object of the new class to your world You may need to move the new object to see it Georgia Institute of Technology

Georgia Institute of Technology Summary You can create objects from classes in Alice and Java Each object needs a unique way to reference it In Java we call this declaring a variable You can create new methods visibility returnType name(Type name, Type name, …) Let’s you reuse a block of statements You can pass parameters to methods To make them more flexible and reusable Georgia Institute of Technology