1 / 16

Class-level Methods and Inheritance Part 1

Class-level Methods and Inheritance Part 1. Alice. 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.

seth-mendez
Télécharger la présentation

Class-level Methods and Inheritance Part 1

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Class-level Methods and InheritancePart 1 Alice

  2. 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

  3. 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

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

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

  6. 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

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

  8. Writing the code • The next step is to translate the design into program code. • For the slideLeft 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

  9. Demo • Demonstration of • slideLeft • slideRight • skate

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

  11. 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?

  12. Answer: Save out as a new class 1) Rename iceSkater as cleverSkater. 2) Save out as a new class. Alice saves the new class as CleverSkater.a2c

  13. Inheritance • The CleverSkater class • inherits all the properties and methods from the original IceSkater class, and also • has the newly defined methods (skate, slideLeft, slideRight) • In other programming languages, the concept of creating a new class based on a previously defined class is called inheritance.

  14. Using CleverSkater • An instance of the CleverSkater class can be added to a new world – use File|Import.

  15. Benefits of Inheritance • Inheritance 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

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

More Related