introduction to object oriented programming in alice and java l.
Download
Skip this Video
Download Presentation
Introduction to Object-Oriented Programming in Alice and Java

Loading in 2 Seconds...

play fullscreen
1 / 87

Introduction to Object-Oriented Programming in Alice and Java - PowerPoint PPT Presentation


  • 152 Views
  • Uploaded on

Introduction to Object-Oriented Programming in Alice and Java. Barb Ericson Georgia Institute of Technology Sept 2006. Learning Goals. Introduce computation as simulation Introduce Alice Create objects in Alice Invoke methods on objects in Alice Introduce DrJava Create objects in Java

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Introduction to Object-Oriented Programming in Alice and Java' - arty


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
introduction to object oriented programming in alice and java

Introduction to Object-Oriented Programming in Alice and Java

Barb Ericson

Georgia Institute of Technology

Sept 2006

Georgia Institute of Technology

learning goals
Learning Goals
  • Introduce computation as simulation
  • Introduce Alice
  • Create objects in Alice
  • Invoke methods on objects in Alice
  • Introduce DrJava
  • Create objects in Java
  • Introduce variables as object references
  • Invoke methods on objects in Java
  • Create a method in Java
  • Create a method in Alice
  • Introduce subclasses

Georgia Institute of Technology

computers as simulators
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

creating a simulation
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

running a simulation
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 his or her job?
      • What does each type 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

introduction to alice
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

getting started
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

turning on java syntax
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

pick a world
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

playing the movie
Playing the Movie
  • To play a saved world
    • 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

create your own movie
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
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
  • Use the Search Gallery button to look for a certain type

Georgia Institute of Technology

add objects to the world13
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
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

mouse controls
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

create more objects
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

objects and classes
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 (a reference)
    • bunny, bunny2, bunny3
  • Class names start with a capital letter
    • Object names start with a lower case letter

Georgia Institute of Technology

telling objects to do things
Telling Objects To Do Things
  • Click the Done button to stop adding objects
  • Click on a reference to an object in the object tree window to select it
    • Click on the Methods tab to see what it can do

Georgia Institute of Technology

messages to objects
Messages to Objects
  • In object-oriented programming we send messages to objects
  • Drag a method from the left to the middle window (world - my first method)
    • A green line will show you were it will go

Georgia Institute of Technology

how to execute my first method
How to Execute my_first_method
  • Click on the Play button
    • This starts the world
  • When the World starts it will execute the method
    • my_first_method

Georgia Institute of Technology

method syntax
Method Syntax
  • Syntax is how statements need to be formed in a programming language
  • The syntax for a method call on an object is:
    • objRef.method(parameterList);
  • We call this “dot” notation

Georgia Institute of Technology

who does the action
Who does the action?
  • We had selected bunny in the object tree window
    • Before we dragged the method
    • So the method is invoked on bunny
  • How do you think we can get bunny2 to do the same action?

Georgia Institute of Technology

moving several objects
Moving Several Objects
  • To get bunny2 to move
    • Select bunny2 in the object tree 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

sequential execution
Sequential Execution
  • By default all Alice methods are executed one after the other
  • You can specify this explicitly using a doInOrder control structure
    • Drag it from here
    • And drag the other statements into it
    • What happens when you play it again?

Georgia Institute of Technology

parallel execution
Parallel Execution
  • What if you want two or more statements to execute at the same time?
    • Use a doTogether
    • Put the things that you want to happen at the same time in the doTogether block
    • We added methods to make each bunny say hello as it goes up
    • What happens if you put a move up and move down in a doTogether?

Georgia Institute of Technology

challenge
Challenge
  • Create a world in Alice with at least 2 objects of the same class
    • and at least 3 objects from different classes
  • Have each object do some actions
    • Some at the same time
    • Some sequential
  • You can use say to have objects “talk” to each other

Georgia Institute of Technology

using turtles in java
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

history of turtles
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

Georgia Institute of Technology

using turtles
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

Georgia Institute of Technology

open preferences in drjava
Open Preferences in DrJava

Georgia Institute of Technology

adding book classes to classpath
Adding Book Classes to Classpath

Add bookClasses

directory

Click on Add

Georgia Institute of Technology

creating objects
Creating Objects
  • To create objects we ask the object that defines the class to create it
    • Each object is created in memory with space for the fields it needs
    • 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
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: newClassName
  • 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
Creating Objects in Java
  • In Java the syntax for creating an object is:

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

creating objects35
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 that the object was using can be reused
  • We need a way to refer to the new object
    • to be able to work with it again

Georgia Institute of Technology

naming is important
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

declaring a variable
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
    • Typename = 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();

Georgia Institute of Technology

declaring variables
When you declare a variable the computer assigns memory to it

The amount of memory depends on the type

For each variable the computer stores a map of the name to the memory location and the type

When you use the name the computer looks up the memory location

And uses the value at that location

1 00000000

2 00001111

3 00000000

4 00111000

5 00000000

6 00111100

7 01111000

8 00000000

9 00000000

10 00000000

11 00000000

12 00000001

Declaring Variables

address

memory

Object of

type World

earth variable

holds a

reference

To the World

Object above

Georgia Institute of Technology

limits on declaring variables
Limits on Declaring Variables
  • You can't declare two variables with the same name!

> World earth = new World();

> World earth = new World();

Error: Redefinition of 'earth‘

  • You can change what an object variable refers to

> World earth = new World();

> earth = new World();

Georgia Institute of Technology

cell phones use variables
In your cell phone you probably have names that map to phone numbers

When you pick Home it looks up the number and uses it to make the call

You can’t have two names that are exactly the same

The phone wouldn’t know which number you are referring to

You can modify the phone number for a name

Barb 555-1235

Home 555-2938

Michael 555-3214

Shannon 555-2921

Cell Phones use Variables

Georgia Institute of Technology

a variable associates a name with space
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
      • Different types have different size boxes

Hat Box

Georgia Institute of Technology

variables sizes
What value(s) does the memory on the right represent?

It could be 4 char values

2 bytes each (16 bits)

Unicode

Or 2 int values

4 bytes each (32 bits)

2’s compliment

Or 1 double value

8 bytes each (64 bits)

In IEEE format

Or an object reference

The size is up to the virtual machine

1 00001000

2 00100000

3 00000100

4 01000000

5 00000001

6 10000000

7 00111000

8 11110000

Variables Sizes

Georgia Institute of Technology

declaring variables and creating objects
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

turtle basics
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);

Georgia Institute of Technology

java naming conventions
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
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

Georgia Institute of Technology

moving a turtle
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);

Georgia Institute of Technology

turning a turtle
Turning a Turtle
  • Turtles can turn
    • Right

jen.turnRight();

jen.forward();

    • Left

shar.turnLeft();

shar.forward(50);

Georgia Institute of Technology

turning a turtle49
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

the pen
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

drawing a letter
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

Georgia Institute of Technology

drawing a t
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

moving to a location
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

Georgia Institute of Technology

challenge54
Challenge
  • Create a World object
    • Don’t forget to declare a variable to hold a reference to it
  • Create a turtle object
    • Don’t forget to declare a variable to hold a reference to it
  • 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

setting the pen width
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);

Georgia Institute of Technology

setting the pen color
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

Georgia Institute of Technology

setting colors
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);

Georgia Institute of Technology

objects can refuse
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

objects send messages
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

creating a method
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
    • visibilityreturnTypename(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

example method
public void drawSquare()

{

this.turnRight();

this.forward(30);

this.turnRight();

this.forward(30);

this.turnRight();

this.forward(30);

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

Example Method

Georgia Institute of Technology

adding a method to a class
Adding a Method to a Class

1. Open file Turtle.java

3. Compile open files

2. Type the method before the last } // end

Georgia Institute of Technology

compile errors
Compile Errors

Case matters in Java! turnright isn’t the same as turnRight

Clicking on the error takes you to the code and highlights it.

Georgia Institute of Technology

try the new method
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);

turtle1.drawSquare();

Georgia Institute of Technology

saving the interactions history in drjava
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

adding a main method
Adding a Main Method
  • In Alice there is a way to specify what method to execute when the world starts
  • In Java when you execute a class you can have a main method
    • This is where execution will start

Georgia Institute of Technology

main method syntax
Main Method Syntax
  • The main method is a class (static) method that can take an array of strings
    • It is a class (static) method since no objects of the class exist yet

public static void main(String[] args)

{

// statements to execute

}

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);

this.turnRight();

this.forward(width);

this.turnRight();

this.forward(width);

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

Better Method to Draw a Square

Georgia Institute of Technology

testing the better method
Testing the Better Method
  • Test with:

World world1 = new World();

Turtle turtle1 = new Turtle(world1);

turtle1.forward(50);

turtle1.drawSquare();

turtle1.turn(30);

turtle1.drawSquare();

  • Or use the saved script if you saved the last interactions history

Georgia Institute of Technology

passing a parameter
public void drawSquare(int width)

{

this.turnRight();

this.forward(width);

this.turnRight();

this.forward(width);

this.turnRight();

this.forward(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

Passing a Parameter

Georgia Institute of Technology

testing with a parameter
Testing with a Parameter
  • Test a method with a parameter

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

how does that work
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

challenges
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
    • Using the other methods

Georgia Institute of Technology

creating a method in alice
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 object tree window
    • Then click on the create new method button

Georgia Institute of Technology

naming the method
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 one after the other

Georgia Institute of Technology

changing the amount
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

try out the method
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

having bunny2 hop
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 in the object tree 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

adding bunny2 hopping
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
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
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
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
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

use a subclass in alice
Use a 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

subclasses in java
Subclasses in Java
  • The Turtle class is a subclass of SimpleTurtle
    • public class Turtle extends SimpleTurtle
  • This means it inherits methods and fields from SimpleTurtle
    • See if you can find the forward and turnRight methods in SimpleTurtle
  • Classes can subclass another class in Java and Alice

Georgia Institute of Technology

challenge86
Challenge
  • Create a subclass from one of the existing Alice classes
    • With at least two new methods in the subclass
    • Be sure to use the new methods in the movie
    • Have at least two objects of the subclass in the movie
    • Have at least two objects of other classes in the movie

Georgia Institute of Technology

summary
Summary
  • You can create objects from classes in Alice and Java
  • Each object needs a unique way to refer to it
    • In Java we call this declaring a variable
  • You can create new methods
    • visibility returnTypename(Typename, Typename, …)
    • Let’s you reuse a block of statements
  • You can pass parameters to methods
    • To make them more flexible and reusable
  • You can create subclasses of other classes
    • They will inherit fields and methods from the parent class

Georgia Institute of Technology