Classlevel Methods Alice World Class Method World method

  • Slides: 25
Download presentation
Class-level Methods Alice

Class-level Methods Alice

World / Class Method World method A general method that may refer to multiple

World / Class Method World method A general method that may refer to multiple objects; not closely associated with any particular class Class method A method belonging to a class, designed to operate on an object of that class

Animated Actions Some actions are more naturally associated with a specific class of objects

Animated Actions Some actions are more naturally associated with a specific class of objects rather than with the overall world. Examples A person walking A wheel rolling A fish swimming

Class Level Methods These methods apply to a particular class of objects They are

Class Level Methods These methods apply to a particular class of objects They are included as part of the class template Some classes have such methods (beyond the primitive methods expected of all objects) Every instance of the class has such a method Create class level methods (functions) to extend the functionality of the class

Class-level Methods We can write our own methods to add abilities/functions to a specific

Class-level Methods We can write our own methods to add abilities/functions to a specific class of objects This will result in a class-level rather than a world-level method The next few slides will demonstrate how to build class-level methods

Primitive / User-defined Methods Primitive methods those directly provided by the classes that are

Primitive / User-defined Methods Primitive methods those directly provided by the classes that are part of the Alice system move, turn, distance. To, … User-defined methods (and functions) those added to a world or class as part of a program These consist of collections of primitive and other user-defined methods

A Predefined Class Method Mana (Local Gallery>People) has two predefined methods These are different

A Predefined Class Method Mana (Local Gallery>People) has two predefined methods These are different from built-in methods because you can edit them Every instance of the Mana class has these methods Predefined methods Note Edit button

Designing Class Level Methods Be sure it will apply to all objects of the

Designing Class Level Methods Be sure it will apply to all objects of the specific class World level methods implement general functionality that can be applied to many different types of objects Class level methods will apply to all objects of the class Each object created from the class will include the new methods

Argument / Parameter Argument A piece of information passed to a method or function

Argument / Parameter Argument A piece of information passed to a method or function that will be used in its computations World. jump(who = Rabbit) // Rabbit is the Argument Parameter A placeholder for information passed to a method (or function) by the caller; provides a handle (name) by which the information is referred to in the method In method definition: World. jump(who) // who is the parameter who move up 1 meter

An example (building technique) How can we create a skate method for ice skater

An example (building technique) How can we create a skate method for ice skater objects? We need to: (1) tell Alice to associate the new method (the one we are about to write) with an ice skater, and (2) write a new method to animate the ice skater skating.

Demo: The solution First, to associate the animation with the ice skater • select

Demo: The solution First, to associate the animation with the ice skater • select the ice. Skater tile in the Object Tree • select the methods tab in the details area • click on the "create new method" button

Storyboard for skate Skate: Do together move skater forward 2 meters Do in order

Storyboard for skate Skate: Do together move skater forward 2 meters Do in order slide on left leg slide on right leg The slide actions each require several motion instructions, so we will break these two actions down into smaller pieces… this technique is called stepwise refinement

Refined storyboard for skate Skate: Do together 1) move forward 2 meters 2) Do

Refined storyboard for skate Skate: Do together 1) move forward 2 meters 2) Do in order slide. Left slide. Right Refinement of slide. Left Do in order Lift right leg and turn upper body forward Lower right leg and return body upright Refinement of slide. Right Do in order Lift leg and turn upper body forward Lower left leg and return body upright

Writing the code The next step is to translate the design into program code.

Writing the code The next step is to translate the design into program code. For the slide. Left method, a possible translation is: Design step Instruction Lift the right leg turn the right thigh forward Turn upper body forward turn the abs forward Lower the right leg turn the right thigh backward Return the body upright turn the abs backward

Demonstration of slide. Left slide. Right skate

Demonstration of slide. Left slide. Right skate

Correspondence of design to code Skate: Do together move skater forward 2 meters Do

Correspondence of design to code Skate: Do together move skater forward 2 meters Do in order slide on left leg slide on right leg

Question Writing the methods to make an ice skater perform a skating motion is

Question Writing the methods to make an ice skater perform a skating motion is an intricate task. Most likely, you would like to reuse these new methods in other worlds. How can you make the skate method available for an ice skater in a different world?

Answer: Save out as a new class 1) Rename ice. Skater as clever. Skater.

Answer: Save out as a new class 1) Rename ice. Skater as clever. Skater. 2) Save out as a new class. Alice saves the new class as Clever. Skater. a 2 c

Creating a Class in Alice Choose a class as a base class Your new

Creating a Class in Alice Choose a class as a base class Your new class will inherit everything from the base class Create an object of the base class Add properties, methods, and functions to the object's details Test! Save the object as a new 3 D class model

Using Clever. Skater An instance of the Clever. Skater class can be added to

Using Clever. Skater An instance of the Clever. Skater class can be added to a new world – use File|Import.

Benefits of Creating a Class New Classes supports the reuse of program code --

Benefits of Creating a Class New Classes supports the reuse of program code -- allows the programmer to write code once and use it again later in different programs. sharing code with others in a team project

Class Methods No-No's Class-level methods should be closely related to an object of the

Class Methods No-No's Class-level methods should be closely related to an object of the class If not, consider making the method a worldlevel one, or place it in another class Programming in Alice © 2006 Dr. Tim Margush 22

Class Methods No-No's Do not make methods too large Instead, use step-wise refinement Create

Class Methods No-No's Do not make methods too large Instead, use step-wise refinement Create smaller methods to accomplish the subtasks needed for more complex tasks Programming in Alice © 2006 Dr. Tim Margush 23

Class Methods No-No's Do not refer to other objects in your classlevel methods Those

Class Methods No-No's Do not refer to other objects in your classlevel methods Those objects may not exist in another world Camera and world objects are a possible exception to this rule Instead, create a parameter (of type object) and refer to the object in a more general sense Programming in Alice © 2006 Dr. Tim Margush 24

Assignment Read Chapter 4 -3 Class-level methods and Inheritance Read Tips & Techniques 4

Assignment Read Chapter 4 -3 Class-level methods and Inheritance Read Tips & Techniques 4 Visible and Invisible Objects