1 / 50

Alice in Action with Java

Alice in Action with Java. Chapter 3 Variables and Functions. Objectives. Use variables to store values for use later in a method Use a variable to store the value of an arithmetic expression Use a variable to store the value produced by a function

morey
Download Presentation

Alice in Action with Java

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. Alice in Action with Java Chapter 3 Variables and Functions

  2. Objectives • Use variables to store values for use later in a method • Use a variable to store the value of an arithmetic expression • Use a variable to store the value produced by a function • Use parameters to write methods that are more broadly useful Alice in Action with Java

  3. Objectives (continued) • Define and access property variables • Use the vehicleproperty to synchronize the movements of two objects • Create functions — messages that return a value to their sender Alice in Action with Java

  4. Variables and Functions • Variable: named container for storing/retrieving data • Three types of variables • Method (local): defined for use within a method • Parameter: variable passed to a method • Object (property): used to store an object property • Tools for creating method variables and parameters • Buttons in the upper-right corner of the method box • Tool for creating object variables • Button under the property pane of the details area Alice in Action with Java

  5. Variables and Functions (continued) Alice in Action with Java

  6. Method Variables • Defined using create new variable button • Information needed to define a variable • Name: refers to a location in memory • Type: refers to kind of data stored; e.g., a number • Initial value: starting value of specified type; e.g., 1 • Method variables are local (valid only in the method) • Common uses of method variables • Computing and storing values for later retrieval • Storing values entered by a user Alice in Action with Java

  7. Example 1: Storing a Computed Value • User story objects: nativeGirl and horse • Objective: move nativeGirl closer to horse • Strategy for moving the girl the right distance • Define variable storing distance from the girl to horse • Ask the girl how far she is from the horse • Store the girl’s reply in the variable • Use variable’s current value in a move()message • Preparing to program with user-defined variables • Position nativeGirl and horsein a new world • Review types: Number, Boolean, Object, Other Alice in Action with Java

  8. Example 1: Storing a Computed Value (continued) Alice in Action with Java

  9. Example 1: Storing a Computed Value (continued) • Creating the first local variable • Click the create new variable button • Define Number type named distanceToHorse • Drag distanceToHorse to the editing area • Set the variable value using a placeholder value of 1 • Click on functions pane for nativeGirl object • Drag distanceInFrontOf()onto placeholder • Specify the entire horse as the object argument Alice in Action with Java

  10. Example 1: Storing a Computed Value (continued) Alice in Action with Java

  11. Example 1: Storing a Computed Value (continued) Alice in Action with Java

  12. Example 1: Storing a Computed Value (continued) • Using distanceToHorse in the move() method • Drag the move()message into the editing area • Select Forward->expressions->distanceToHorse • A test of method shows the girl too close to horse • Adjusting the distance that the girl moves • Click the list arrow next to distanceToHorse • Select math->distanceToHorse-->.5 • Use functions and variables over trial-and-error • Behavior will adapt to repositioning of objects Alice in Action with Java

  13. Example 1: Storing a Computed Value (continued) Alice in Action with Java

  14. Example 1: Storing a Computed Value (continued) Alice in Action with Java

  15. Example 1: Storing a Computed Value (continued) Alice in Action with Java

  16. Example 2: Storing a User-Entered Value • User story built around the Pythagorean Theorem • skaterGirl requests the lengths of two sides • User passes edge1 and edge2 values to skaterGirl • skaterGirl computes hypotenuseand displays value • Overview of implementation • Create skaterGirl method computeHypotenuse() • Declare three Numbervariables for triangle sides • Add two say()statements for interactive dialog • Add set() method for edge1 • Incorporate NumberDialog into set()parameter list Alice in Action with Java

  17. Example 2: Storing a User-Entered Value (continued) Alice in Action with Java

  18. Example 2: Storing a User-Entered Value (continued) Alice in Action with Java

  19. Example 2: Storing a User-Entered Value (continued) • Overview of implementation (continued) • Add set()method for edge2 • Incorporate NumberDialog into set()parameter list • Add set()method for hypotenuse • Drag and drop Math.sqrt()over placeholder value • Pass a mathematical expression to Math.sqrt() • Define String variable named hypotString • Convert hypotenuse to string and store in hypotString • Add say()method to display results • Display concatenates dialog and hypotString value Alice in Action with Java

  20. Example 2: Storing a User-Entered Value (continued) Alice in Action with Java

  21. Example 2: Storing a User-Entered Value (continued) Alice in Action with Java

  22. Parameters • Argument: value passed to an object via a message • Parameter: variable that stores an argument • Example using the say() message • The parameter is a single variable of String type • One possible argument is “Oh, hello there!” • You may pass multiple arguments to messages • Example: roll() message requires two arguments Alice in Action with Java

  23. Example 1: Old MacDonald Had a Farm • Objective: display song lyrics for four animals • Use of parameters helps avoid repetitious coding • Two parameters needed: animal and noise • Overview of implementation • Create new world with scarecrowbefore fence • Create singVerse()method for scarecrow • Add two parameters, animal and noise • Add String types, firstLine and doubleNoise • Incorporate parameters and variables in say()methods • Call singVerse()messages in singOldMacDonald() Alice in Action with Java

  24. Example 1: Old MacDonald Had a Farm (continued) Alice in Action with Java

  25. Example 1: Old MacDonald Had a Farm (continued) Alice in Action with Java

  26. Example 1: Old MacDonald Had a Farm (continued) Alice in Action with Java

  27. Example 2: Jumping Fish! • User story: fish jumps, traces an arc, returns to water • Fish object used is an instance of Pinkminnow • Basic elements in the design of jump()method • One parameter: distance • Local var: height, halfDist, startStopDist, angle • Approximate height of jump as 1/3 of the distance moved • Assume starting/stopping point is 1/2 distance of jump • Set the pitch angle to .1 • The jump()method is implemented in Figure 3-35 • Program should be tested with multiple distance values Alice in Action with Java

  28. Example 2: Jumping Fish! (continued) Alice in Action with Java

  29. Example 2: Jumping Fish! (continued) Alice in Action with Java

  30. Example 2: Jumping Fish! (continued) Alice in Action with Java

  31. Property Variables • Also called instance variables or object variables • Property variables are defined within an object • Use the properties pane of the object’s details area • Values in an object variable are not shared • How to create and use a property variable • Open a new world and add a wizard object • Click on wizard properties • Click create new variable • Define String type (in Other list) called myName • Initialize myName to Jim Alice in Action with Java

  32. Property Variables (continued) Alice in Action with Java

  33. Property Variables (continued) • How to create and use a property variable (continued) • Duplicate the wizard using copy button • Close the Add Objectswindow • Click on the second wizard in the object tree • Click the properties tab in the details area • Change the second wizard’s name from Jim to Tim • Testing the identity of the wizards • Use say()messages to display each wizard’s name • Argument used: “My name is “ +wizard.myName • Check object for predefined properties; e.g., opacity Alice in Action with Java

  34. Property Variables (continued) Alice in Action with Java

  35. Property Variables (continued) Alice in Action with Java

  36. Alice Tip: Using the Vehicle Property • Vehicle • The thing on which an object “rides” • The default vehicle for an object is the world • Vehicle property is used to synchronize movements • Using vehicleproperty in program with girl and horse • Scene 4 initially shows the nativeGirlon a horse • Add set()method for nativeGirl’s vehicle property • Set the value of the vehicle to the entire horse • Include a move()method below the set()method • Send playScene4()to my_first_method() and test Alice in Action with Java

  37. Alice Tip: Using the Vehicle Property (continued) Alice in Action with Java

  38. Alice Tip: Using the Vehicle Property (continued) Alice in Action with Java

  39. Functions • Messages used to retrieve information • May be defined by the user Alice in Action with Java

  40. Example: Retrieving an Attribute from an Object • User story involves program with twin wizards • Objective: enhance program by using titles with names • Jim uses The Enchanter, and Tim uses The Magus • Creating the title property • Define property variable myTitle with type String • Assign title values to each wizard’s myTitle variable • Simplest way to access name and title • Pass myTitle concatenated with myName to say() • Problem: extra time needed to build the full name • Alternative: use a function to produce the full name Alice in Action with Java

  41. Example: Retrieving an Attribute from an Object (continued) Alice in Action with Java

  42. Example: Retrieving an Attribute from an Object (continued) • Defining a function to produce a full name • Select wizard object and then click functions pane • Click the create new function button • Declare function called getFullName as String type • Create variable called fullName • Set value of fullNameto concatenated name and tile • Include fullName in the return statement • Defining a simpler function for the second wizard • Return myTitleconcatenated with myName • Send both functions to my_first_method Alice in Action with Java

  43. Example: Retrieving an Attribute from an Object (continued) Alice in Action with Java

  44. Example: Retrieving an Attribute from an Object (continued) Alice in Action with Java

  45. Example: Retrieving an Attribute from an Object (continued) Alice in Action with Java

  46. Functions with Parameters • Functions can use parameters to store arguments • Adapting skaterGirl program to use functions • Create Number type called calculateHypotenuse() • Add parameters Number, leg1, and leg2 • Create local variable named hypot • Set value of hypot to mathematical expression • Incorporate new function into computeHypotenuse() • Comparing functions to methods • Functions return a value and appear in parameter list • Methods do not return a value and appear as statements Alice in Action with Java

  47. Functions with Parameters (continued) Alice in Action with Java

  48. Functions with Parameters (continued) Alice in Action with Java

  49. Summary • Variable: named container for storing and retrieving values • Types of variables: method variables, parameters, object variables • Data types: Number, Boolean, Object, String • Parameter: container for an argument • Argument: data passed to a method or function Alice in Action with Java

  50. Summary (continued) • Object vehicle: thing on which an object “rides” • A method does not return a value to its sender • A method is sent from a place where a statement can appear • A function does return a value to its sender • A function is sent from a place where a value can appear Alice in Action with Java

More Related