Moving Beyond Robots to Objects - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Moving Beyond Robots to Objects

Description:

String word1 = 'The cat'; String word2 = word1; word1 = word1 ' in the Hat' ... word1 contains the String 'The cat in the Hat' However. word2.length ... – PowerPoint PPT presentation

Number of Views:46
Avg rating:3.0/5.0
Slides: 29
Provided by: Dona93
Category:
Tags: beyond | cat | hat | in | moving | objects | robots | the

less

Transcript and Presenter's Notes

Title: Moving Beyond Robots to Objects


1
Chapter 9
  • Moving Beyond Robots to Objects

2
9.1 Objects
  • Objects are electronic things
  • Objects can do stuff
  • can remember stuff
  • can talk to other objects
  • Act more like people cats than rocks freshman

3
9.1 Objects
  • Most objects are passive
  • only active when asked to do something
  • when asked to do something that isnt
    appropriate, it is an error?

4
9.1 Objects
  • Objects in the programming world
  • primarily robots
  • corners are almost like objects
  • we also used a random number generator object
  • flipping a coin in RandomWalker

5
9.1 Objects
  • Some objects are things
  • They have names
  • They can also have aliases
  • names are also called variables because the
    object they refer to can change
  • In general, a variable of an object type/class
    can refer to any object of its type or any subtype

6
9.1 Objects
  • In Java
  • variable can refer to other things besides
    objects
  • some variables dont reference things, but hold
    things
  • e.g., int size 30
  • creates and assigns without using new
  • Variable that isnt a reference to an object
  • can only hold a value of its own precise type

7
9.1 Objects
  • What does this do?
  • int size 30
  • int bigger size 30System.out.println(bigger)
  • How about this?
  • int size
  • int bigger size 1
  • System.out.println(bigger)

8
9.2 Classes
  • class is short for classificaton
  • A class describes a set of objects of the same
    kind.
  • A class describes what an object can do and/or
    remember
  • A good way to think about a class is that it is a
    factory for creating objects of that type.

9
9.2 Classes
  • How do you make a robot remember its name?
  • class BrainyRobot extends Robot
  • public BrainyRobot(String name, )
  • super ()
  • myName name
  • public String name() return myName
  • private String myName
  • A String is a sequence of characters , usually in
    double Quotes( )

10
9.2 Classes
  • String is a Java class
  • myName is an instance variable
  • Usually, one initializes an instance variable in
    the constructor(s)
  • It is called an instance variable because each
    instance of the class that was instantiated has
    its own instance of the variable(memory)
  • In Java we can print out a string
  • System.out.println( someString )
  • Or, equivalently
  • System.out.println( someString.toString() )

11
9.3 String
  • A String is a sequence of (any) characters
  • A String object performs services for us
  • e.g., remembers the sequence of characters
  • tell us its length someString.length()
  • return a new String
  • String more someWord.concat(a word)
  • Or, equivalently
  • String more someWord a word

12
9.3 String
  • Examples
  • String word1 one Fish
  • word1.length() returns 8
  • String word2 Fox in Socks
  • word2.length() returns 12
  • String word3 word1.concat( two Fish)
  • word3.length() returns 17 because
  • word3 contains the String one Fish two Fish
  • word1.length() still returns 8
  • because word1 has not been altered

13
9.3 String
  • String class has 30 services
  • but none change the characters
  • because there are no modifier methods
  • Strings are immutable
  • a string variable can refer to different Strings

14
9.3 String
  • String word1 The cat
  • String word2 word1
  • word1 word1 in the Hat
  • word1.length() returns 18 because
  • word1 contains the String The cat in the Hat
  • However
  • word2.length() returns 7 because
  • word2 contains the String The cat

15
9.3 String
  • We can look at the individual char(acters)
  • someString.charAt(someIntValue)
  • Each char is stored in a numbered slot
  • start with zero
  • aString.charAt(0) represents/returns the first
    char
  • aString.charAt(4) represents/returns the 5th char
  • aString.charAt(n) is an error if
    aString.length()lt n

16
9.3 String
  • String word1 The cat
  • word1.charAt(0) returns the char T
  • word1.charAt(4) returns the char c
  • word1.charAt(5) returns the char a
  • word1.charAt(7) is an error because
    word1.length() lt 7

17
9.3 String
  • We can also add (concatenate) Strings
  • for example
  • String more help me
  • String stillMore more Please
  • stillMore.length() returns ????
  • stillMore contains what sequence ?????
  • more someone more
  • more.length() returns ????
  • more contains what sequence ?????

18
9.3 String
  • In Java, Strings dont behave polymorphically
  • because the class is declared as final
  • prohibits you from building a subclass of String
  • i.e., you can not extend String
  • methods can also be final
  • can not be overridden
  • A final class means all its methods are final.

19
9.4 Parameters for Robots
  • When we ask an object to perform a service, we
    need to send additional information.
  • aString.charAt(whichCharacter)
  • or

20
9.4 Parameters for Robots
  • if we want karel to move several blocks.
  • public void moveSeveralBlocks(int howManyBlocks)
  • for(int i 0 i lt howManyBlocks i)
    move()
  • calls to moveSeveralBlocks
  • karel.moveSeveraBlocks(4) // moves karel 4
    corners
  • karel.moveSeveraBlocks( someIntValue() )

21
9.4 Parameters for Robots
  • It is possible to define several methods in the
    same class with the same name, provided
  • they DIFFER in number and type
  • Compare these 4 examples which could be in the
    same class???
  • public void move(int distance)
  • public void move(double distance)
  • public boolean move(int dist)
  • public void move(int distance, char ch)
  • Different return type only is NOT sufficient!

22
9.5 Other Classes
  • Math is a special type of class
  • Certain messages can be sent to classes/methods.
  • These are called static methods
  • A static member of a class is shared by all
    objects in the class and, if public, shared
    everywhere.

23
9.5 Other Classes
  • Math class has something like
  • public class Math
  • public static int abs(int x)
  • This allows calls like
  • int absoluteValue Math.abs(-12)

24
9.5 Other Classes
  • Variables can also be static (or shared)
  • Static variables dont have separate copies in
    each object of the class
  • Instead, the one variable is shared by ALL
    objects of the class!

25
9.6 Still more Java
  • System.out.println(The robot has
    karel.numBeepers() beepers)
  • notice the mixed use of the operator with
    Strings and ints

26
9.8 Java Arrays
  • Racer racers new Racer20
  • creates an array but doesnt create any Robots

27
9.8 Java Arrays
  • for(int i 0 i lt racers.length i)
  • racersi new Racer(i, 1, East, 0)
  • creates the Robots and stores their reference in
    the racers array.
  • Slots are numbered from 0 just like Strings
  • length is used without the ()
  • accessing an index out of range causes an
    ArrayIndexOutOfBoundsException run-time exception.

28
9.9 Important Ideas From This Chapter
  • String
  • array
  • static method, static variable
  • final class
  • final method
  • final
Write a Comment
User Comments (0)
About PowerShow.com