Using Objects - PowerPoint PPT Presentation

1 / 110
About This Presentation
Title:

Using Objects

Description:

System.out.println('First search: ' n1); System.out.println('Second search: ' n2) ... determine the area code // determine the local number // arrange result ... – PowerPoint PPT presentation

Number of Views:79
Avg rating:3.0/5.0
Slides: 111
Provided by: jimco60
Category:
Tags: area | code | objects | search | using

less

Transcript and Presenter's Notes

Title: Using Objects


1
Using Objects
  • Chapter 3
  • Fall 2005
  • CS 101
  • Aaron Bloomfield

2
Getting classy
  • Purpose of this chapter
  • Gain experience creating and manipulating objects
    from the standard Java types
  • Why
  • Prepares you for defining your own classes and
    creating and manipulating the objects of those
    classes

3
Values versus objects
  • Numbers
  • Have values but they do not have behaviors
  • Objects
  • Have attributes and behaviors
  • System.in
  • References an InputStream
  • Attribute keyboard
  • Behaviors reading
  • System.out
  • References an OutputStream
  • Attribute monitor
  • Behaviors printing

4
Using objects
  • First, we create an object
  • Scanner stdin new Scanner (System.in)
  • Most object creation lines look like this
  • Then we use the object
  • stdin.nextInt()
  • stdin.nextDouble()
  • Note that we could have called the object foo,
    bar, or anything
  • stdin is just what we chose to call it

5
Using Rectangle objects
  • Lets create some Rectangle objects
  • Rectangle creation
  • Rectangle r new Rectangle (10, 20)
  • Objects have attributes (or properties)
  • System.out.println (r.length)
  • System.out.println (r.width)
  • Objects have behaviors (or methods)
  • r.grow (10, 20)
  • r.isEmpty()
  • r.setLocation (5,4)

6
Using String objects
  • Lets create some String objects
  • String creation
  • String s new String (Hello world)
  • Objects have attributes (or properties)
  • But we cant access them
  • Objects have behaviors (or methods)
  • s.substring(0,6)
  • s.indexOf (world)
  • s.toLowerCase()

7
The lowdown on objects
  • Objects are things that have properties
    (attributes) and behaviors (methods)
  • We first create one or more objects
  • We then manipulate their properties and call
    their methods

8
So why bother with objects?
  • Lets say you want to do a lot of String
    manipulation
  • Once you create a String object, all the
    manipulation methods are contained therein
  • Sun already wrote the methods for us
  • So we can use String objects instead of writing
    our own code to get the substring, indexOf, etc.

9
More on Strings
  • Strings are used very often
  • As a shortcut, you can use
  • String s Hello world
  • instead of
  • String s new String (Hello world)
  • Its just a shortcut that Java allows
  • The two lines are almost the same
  • There is a minor difference between the two
  • Which well get to later

10
Visualizing objects
  • Class (type) name
  • Attributes (properties)
  • Methods (behaviors)

11
Date translation
  • Goal to translate the date from American format
    to standard format

12
End of lecture on 5 September 2005
13
How well do we understand using objects?
14
Sidewalk chalk guy
  • Source http//www.gprime.net/images/sidewalkchalk
    guy/

15
Java and variables
  • Consider
  • int x 7
  • double d
  • char c x
  • The variable name is the actual spot in memory
    where the value is stored

16
What is a reference
  • A reference is a memory address
  • References are like pointers in C/C
  • But they are not the exact same thing!
  • C has references also (in addition to pointers)
  • You may hear me call them pointers instead of
    references
  • All objects in Java are declared as references

17
References 1
  • Consider
  • int j 5
  • String s Hello world
  • Java translates that last line into
  • String s new String (Hello world)
  • (Not really, but close enough for this lecture)

Note that there is no new here
18
References 2
  • Whats happening in memory
  • int j 5
  • String s Hello world
  • Primitive types are never references only objects
  • int j 5
  • String s Hello world

String s
Takes up 32 bits (4 bytes) of memory
Takes up 32 bits (4 bytes) of memory
At memory location 0x0d4fe1a8
Takes up ?12 bytes of memory
19
Other Java object types
  • String
  • Rectangle
  • Color
  • JFrame

20
Representation
  • Statements
  • int peasPerPod 8
  • String message "Don't look behind the door!

21
Representation
String s I love CS 101 int l
s.length() char c s.charAt (3) String t
s.subString(1,2) int t s.indexOf (t, 0)
22
Shorthand representation
  • Statements
  • int peasPerPod 8
  • String message "Don't look behind the door!

23
Examples
  • Consider
  • String a "excellence
  • String b a
  • What is the representation?

24
Uninitialized versus null
  • Consider
  • String dayOfWeek
  • Scanner inStream
  • What is the representation?

25
Uninitialized versus null
  • Consider
  • String fontName null
  • Scanner fileStream null
  • What is the representation?

OR
26
The null reference
  • Sometimes you want a reference to point to
    nothing
  • Use the null reference
  • String s null
  • The null reference is equivalent to a memory
    address of zero (0x00000000)
  • No user program can exist there

27
The null reference
  • Consider
  • String s Hello world
  • System.out.println (s.length())
  • What happens?
  • Java prints out 11

28
Computer bugs
29
The null reference
  • Consider
  • String s null
  • System.out.println (s.length())
  • This is called accessing (or following) a null
    pointer/reference
  • What happens?
  • Java java.lang.NullPointerException
  • C/C Segmentation fault (core dumped)
  • Windows

30
So what is a null reference good for?
  • Lets say you had a method that returned a String
    when passed some parameters
  • Normally it returns a valid String
  • But what if it cant? How to deal with that?
  • Return a null reference

31
References and memory
  • Most modern computers are 32-bit computers
  • This means that a reference takes up 32 bits
  • 232 4 Gb
  • This means that a 32-bit machine cannot access
    more than 4 Gb of memory!
  • Well, without doing some tricks, at least
  • Most machines come with 1 Gb memory these days
  • Will come with 4 Gb in a year or so
  • 64-bit machines will have a maximum of 16
    exabytes of memory
  • Giga, Tera, Peta, Exa
  • Thats 16 billion Gb!

32
References 4
  • Consider
  • String s1 first string
  • String s2 second string
  • s2 s1
  • System.out.println (s2)
  • String s1 first string
  • String s2 second string
  • s2 s1
  • System.out.println (s2)

What happens to this?
33
Javas garbage collection
  • If an object in memory does not have a reference
    pointing to it, Java will automagically delete
    the object
  • This is really cool!
  • In C/C, you had to do this by yourself

34
Assignment
  • Consider
  • String word1 "luminous"
  • String word2 "graceful"
  • word1 word2
  • Initial representation

Garbage collection time!
35
Using objects
  • Consider
  • Scanner stdin new Scanner(System.in)
  • System.out.print("Enter your account name ")
  • String response stdin.next()
  • Suppose the user interaction is
  • Enter your account name artiste

36
String representation
  • Consider
  • String alphabet "abcdefghijklmnopqrstuvwxyz"
  • Standard shorthand representation
  • Truer representation

37
String representation
  • Consider
  • String alphabet "abcdefghijklmnopqrstuvwxyz"
  • char c1 alphabet.charAt(9)
  • char c2 alphabet.charAt(15)
  • char c3 alphabet.charAt(2)
  • What are the values of c1, c2, and c3? Why?

38
Program WordLength.java
  • public class WordLength
  • public static void main(String args)
  • Scanner stdin new Scanner(System.in)
  • System.out.print("Enter a word ")
  • String word stdin.next()
  • int wordLength word.length()
  • System.out.println("Word " word " has
    length "
  • wordLength ".")

39
Program demo
40
An optical illusion
41
More String methods
  • Consider
  • String weddingDate "August 21, 1976"
  • String month weddingDate.substring(0, 6)
  • System.out.println("Month is " month ".")
  • What is the output?
  • Month is August.

42
More String methods
  • Consider
  • String fruit "banana"
  • String searchString "an"
  • int n1 fruit.indexOf(searchString, 0)
  • int n2 fruit.indexOf(searchString, n1 1)
  • int n3 fruit.indexOf(searchString, n2 1)
  • System.out.println("First search " n1)
  • System.out.println("Second search " n2)
  • System.out.println("Third search " n3)
  • What is the output?
  • First search 1
  • Second search 3
  • Third search -1

43
End of lecture 7 September 2005
  • Well, that lecture sucked. Time to redo the last
    lectures worth of slides in a more coherent
    fashion

44
Review
  • Variables of primitive types
  • int, double, char, boolean, etc.
  • Can assign a value to it
  • Can read a value from it
  • Cant do much else!
  • Objects
  • String, Rectangle, etc.
  • Have many parts
  • Rectangle has width, length, etc.
  • Like a complex type
  • Have methods
  • String has length(), substring(), etc.

45
Variable declaration
  • Consider
  • int x 5
  • int x 7
  • Java wont allow this
  • You can only declare a variable once
  • At the int x7 line, Java already has a x spot
    in memory
  • It cant have two

46
String methods
  • length() returns the Strings length (duh!)
  • String s hello world
  • String t goodbye
  • System.out.println (s.length())
  • System.out.println (t.length())
  • Prints 11 and 7
  • Note that calling s.length() is different than
    calling t.length()!
  • Both return the length
  • But of different Strings

47
More String methods
  • Consider
  • String weddingDate "August 21, 1976"
  • String month weddingDate.substring(0, 6)
  • System.out.println("Month is " month ".")
  • What is the output?
  • Month is August.

48
More String methods
  • Consider
  • String fruit "banana"
  • String searchString "an"
  • int n1 fruit.indexOf(searchString, 0)
  • int n2 fruit.indexOf(searchString, n1 1)
  • int n3 fruit.indexOf(searchString, n2 1)
  • System.out.println("First search " n1)
  • System.out.println("Second search " n2)
  • System.out.println("Third search " n3)
  • What is the output?
  • First search 1
  • Second search 3
  • Third search -1

49
Program WordLength.java
  • public class WordLength
  • public static void main(String args)
  • Scanner stdin new Scanner(System.in)
  • System.out.print("Enter a word ")
  • String word stdin.next()
  • int wordLength word.length()
  • System.out.println("Word " word " has
    length "
  • wordLength ".")

50
Program demo
51
PhoneNumberFun.java
  • import java.util.
  • public class PhoneNumberFun
  • // main() demonstrates a simple String
    manipulation
  • public static void main(String args)
  • //...
  • // determine the area code
  • // determine the local number
  • // arrange result
  • // display input and result

52
Program demo
53
Lots of piercings
  • This may be a bit disturbing

54
More String methods
  • trim()
  • Returns the String without leading and trailing
    whitespace
  • Whitespace is a space, tab, or return

55
DateTranslation.java
  • // Convert user-specified date from American to
    standard format
  • import java.util.
  • class DateTranslation
  • // main() application entry point
  • static public void main(String args)
  • // produce a legend (Step 1)
  • // prompt the user for a date in American
    format (Step 2)
  • // acquire the input entered by the user (Step
    3)
  • // echo the input back (Step 4)
  • // get month entered by the user (Step 5)
  • // get day entered by the user (Step 6)
  • // get year entered by the user (Step 7)
  • // create standard format version of input
    (Step 8)
  • // display the translation (Step 9)

56
Program demo
57
Variables vs. Types
  • The type is the recipe or template for how to
    create a variable
  • Examples int, double, char, boolean, etc.
  • There are only 8 primitive types
  • There are only a few things you can do with a
    type
  • Declare a variable
  • int x
  • Use it as a cast
  • x (int) 3.5
  • There is only one of each type
  • The variable is the actual instance of a type in
    memory
  • Its a spot in memory where you store a value
  • You choose the name width, x, thatThemThereValue,
    etc.
  • You can have as may variables as you want but
    only one type!
  • Like the difference between a recipe and a bunch
    of cookies

58
How well do we understand variables versus types?
59
Classes vs. Objects
  • A class is a user-defined thing
  • Examples String, Scanner, Rectangle, etc.
  • Well start defining our own classes next chapter
  • Classes are more complex than the primitive types
  • A class is analogous to a type
  • Its just more complex and user-defined
  • There can be only one class of each name
  • An object is an instance of a class
  • There is only one String class, but you can have
    100 String objects
  • A object is analogous to a variable
  • It just is a reference instead
  • A class is a template used for creating objects

60
More on classes vs. objects
61
How well do we understand classes versus objects?
62
The 2004 Ig Nobel Prizes
  • Medicine
  • Physics
  • Public Health
  • Chemistry
  • Engineering
  • Literature
  • Psychology
  • Economics
  • Peace
  • Biology

"The Effect of Country Music on Suicide. For
explaining the dynamics of hula-hooping Investigat
ing the scientific validity of the Five-Second
Rule The Coca-Cola Company of Great Britain For
the patent of the combover The American Nudist
Research Library Its easy to overlook things
even a man in a gorilla suit. The Vatican, for
outsourcing prayers to India The invention of
karaoke, thereby providing an entirely new way
for people to learn to tolerate each other For
showing that herrings apparently communicate by
farting
63
References
64
Java and variables
  • Consider
  • int x 7
  • double d
  • char c x
  • The variable name is the actual spot in memory
    where the value is stored

65
What is a reference
  • A reference is a memory address
  • References are like pointers in C/C
  • But they are not the exact same thing!
  • C has references also (in addition to pointers)
  • You may hear me call them pointers instead of
    references
  • All objects in Java are declared as references

66
References 1
  • Consider
  • int j 5
  • String s Hello world
  • Java translates that last line into
  • String s new String (Hello world)
  • (Not really, but close enough for this lecture)

Note that there is no new here
67
References 2
  • Whats happening in memory
  • int j 5
  • String s Hello world
  • Primitive types are never references only objects
  • int j 5
  • String s Hello world

String s
Takes up 32 bits (4 bytes) of memory
Takes up 32 bits (4 bytes) of memory
At memory location 0x0d4fe1a8
Takes up ?12 bytes of memory
68
Representation
  • Statements
  • int peasPerPod 8
  • String message "Don't look behind the door!

69
Representation
String s I love CS 101 int l
s.length() char c s.charAt (3) String t
s.subString(1,2) int t s.indexOf (t, 0)
70
Shorthand representation
  • Statements
  • int peasPerPod 8
  • String message "Don't look behind the door!

71
Examples
  • Consider
  • String a "excellence
  • String b a
  • What is the representation?

72
References 3
  • Consider
  • String s1 first string
  • String s2 second string
  • s2 s1
  • System.out.println (s2)
  • String s1 first string
  • String s2 second string
  • s2 s1
  • System.out.println (s2)

What happens to this?
73
Javas garbage collection
  • If an object in memory does not have a reference
    pointing to it, Java will automagically delete
    the object
  • This is really cool!
  • In C/C, you had to do this by yourself

74
End of lecture on 12 September 2005
  • Mary Lou also gave her talk today
  • Want to start a few slides back to review
    references

75
Warn your grandparents!
  • Historically, this class has been lethal to
    grandparents of students in the class
  • More often grandmothers
  • This happens most around test time
  • Although occasionally around the times a big
    assignment is due

76
Uninitialized versus null
  • Consider
  • String dayOfWeek
  • Scanner inStream
  • What is the representation?

77
Uninitialized versus null
  • Consider
  • String fontName null
  • Scanner fileStream null
  • What is the representation?

OR
78
The null reference
  • Sometimes you want a reference to point to
    nothing
  • Use the null reference
  • String s null
  • The null reference is equivalent to a memory
    address of zero (0x00000000)
  • No user program can exist there

79
The null reference
  • Consider
  • String s Hello world
  • System.out.println (s.length())
  • What happens?
  • Java prints out 11

80
The null reference
  • Consider
  • String s null
  • System.out.println (s.length())
  • This is called accessing (or following) a null
    pointer/reference
  • What happens?
  • Java java.lang.NullPointerException
  • C/C Segmentation fault (core dumped)
  • Windows

81
What happens in Windows
82
So what is a null reference good for?
  • Lets say you had a method that returned a String
    when passed some parameters
  • Normally it returns a valid String
  • But what if it cant? How to deal with that?
  • Return a null reference

83
References and memory
  • Most modern computers are 32-bit computers
  • This means that a reference takes up 32 bits
  • 232 4 Gb
  • This means that a 32-bit machine cannot access
    more than 4 Gb of memory!
  • Well, without doing some tricks, at least
  • Most machines come with 1 Gb memory these days
  • Will come with 4 Gb in a year or so
  • 64-bit machines will have a maximum of 16
    exabytes of memory
  • Giga, Tera, Peta, Exa
  • Thats 16 billion Gb!

84
Why speling is not so important
  • I cdnuolt blveieetaht I cluod aulaclty
    uesdnatnrd waht I was rdanieg. The phaonmneal
    pweor of thehmuan mind. Aoccdrnig to a
    rscheearch at Cmabrigde Uinervtisy, it deosn't
    mttaer in waht oredr the ltteers in a wrod are,
    the olny iprmoatnt tihng is taht thefrist and
    lsat ltteer be in the rghit pclae. The rset can
    be a taotl mses andyou can sitll raed it wouthit
    a porbelm. Tihs is bcuseae the huamn mnid
    deosnot raed ervey lteter by istlef, but the wrod
    as a wlohe. Amzanig huh? yaeh and I awlyas
    thought slpeling was ipmorantt.

85
Assignment
  • Consider
  • String word1 "luminous"
  • String word2 "graceful"
  • word1 word2
  • Initial representation

Garbage collection time!
86
Using objects
  • Consider
  • Scanner stdin new Scanner(System.in)
  • System.out.print("Enter your account name ")
  • String response stdin.next()
  • Suppose the user interaction is
  • Enter your account name artiste

87
String representation
  • Consider
  • String alphabet "abcdefghijklmnopqrstuvwxyz"
  • Standard shorthand representation
  • Truer representation

88
String representation
  • Consider
  • String alphabet "abcdefghijklmnopqrstuvwxyz"
  • char c1 alphabet.charAt(9)
  • char c2 alphabet.charAt(15)
  • char c3 alphabet.charAt(2)
  • What are the values of c1, c2, and c3? Why?

89
More String methods
  • Consider
  • int v1 -12
  • double v2 3.14
  • char v3 'a'
  • String s1 String.valueOf(v1)
  • String s2 String.valueOf(v2)
  • String s3 String.valueOf(v3)
  • int v1 -12
  • double v2 3.14
  • char v3 'a'
  • String s1 String.valueOf(v1)
  • String s2 String.valueOf(v2)
  • String s3 String.valueOf(v3)

90
Just in time for Valentines Day
91
Bittersweets Dejected sayings
  • I MISS MY EX
  • PEAKED AT 17
  • MAIL ORDER
  • TABLE FOR 1
  • I CRY ON Q
  • U C MY BLOG?
  • REJECT PILE
  • PILLOW HUGGIN
  • ASYLUM BOUND
  • DIGNITY FREE
  • PROG FAN
  • STATIC CLING
  • WE HAD PLANS
  • XANADU 2NITE
  • SETTLE 4LESS
  • NOT AGAIN

92
Bittersweets Dysfunctional sayings
  • RUMORS TRUE
  • PRENUP OKAY?
  • HE CAN LISTEN
  • GAME ON TV
  • CALL A 900
  • P.S. I LUV ME
  • DO MY DISHES
  • UWATCH CMT
  • PAROLE IS UP!
  • BE MY YOKO
  • UMEGRIEF
  • I WANT HALF
  • RETURN 2 PIT
  • NOT MY MOMMY
  • BE MY PRISON
  • C THAT DOOR?

93
Final variables
  • Consider
  • final String POEM_TITLE Appearance of Brown"
  • final String WARNING Weather ball is black"
  • What is the representation?

94
Final variables
95
Rectangle
96
Final variables
  • Consider
  • final String LANGUAGE "Java"

97
Rectangle
  • Consider
  • final Rectangle BLOCK new Rectangle(6, 9, 4,
    2)
  • BLOCK.setLocation(1, 4)
  • BLOCK.resize(8, 3)
  • final Rectangle BLOCK new Rectangle(6, 9, 4,
    2)
  • BLOCK.setLocation(1, 4)
  • BLOCK.resize(8, 3)

98
String method usage
  • Consider
  • String s "Halloween"
  • String t "Groundhog Day"
  • String u "May Day"
  • String v s.substring(0,6)
  • int x t.indexOf ("Day", 0)
  • int y u.indexOf ("Day")
  • s t
  • u null
  • String s "Halloween"
  • String t "Groundhog Day"
  • String u "May Day"
  • String v s.substring(0,6)
  • int x t.indexOf ("Day", 0)
  • int y u.indexOf ("Day")
  • s t
  • u null

99
String method usage
  • Consider
  • String s "Halloween"
  • String t "Groundhog Day"
  • final String u "May Day"
  • String v s.substring(0,6)
  • int x t.indexOf ("Day", 0)
  • int y u.indexOf ("Day")
  • s t
  • u null
  • s t
  • u null

Java error cannot assign a value to final
variable u
100
Rectangle method usage
  • Consider
  • Rectangle r new Rectangle()
  • final Rectangle s new
  • Rectangle (1, 2, 3, 4)
  • r.setWidth(5)
  • r.setHeight(6)
  • s.setWidth (7)
  • r new Rectangle (8,9,10,11)
  • s new Rectangle (12,13,14,15)
  • Rectangle r new Rectangle()
  • final Rectangle s new
  • Rectangle (1, 2, 3, 4)
  • r.setWidth(5)
  • r.setHeight(6)
  • s.setWidth (7)
  • r new Rectangle (8,9,10,11)
  • s new Rectangle (12,13,14,15)

101
Scanner review
  • To initialize a Scanner object
  • Scanner stdin new Scanner (System.in)
  • Scanner stdin Scanner.create (System.in)
  • This one will not work!
  • To read an int from the keyboard
  • stdin.nextInt()
  • To read a double from the keyboard
  • stdin.nextDouble()
  • To read a String from the keyboard
  • stdin.next()

102
Scanner usage examples
  • Consider
  • Scanner stdin new Scanner (System.in)
  • int x stdin.nextInt()
  • double d stdin.nextDouble()
  • String s stdin.next()
  • Scanner stdin new Scanner (System.in)
  • int x stdin.nextInt()
  • double d stdin.nextDouble()
  • String s stdin.next()

103
Todays demotivators
104
End of lecture on 14 Sep 2005
  • We also did the first few slides of chapter 5
  • The remaining slides in this set were done on 19
    Sep 2005

105
Overloading
  • Weve seen a number of methods
  • In the String class substring(), charAt(),
    indexOf(), etc.
  • In the Rectangle class setLocation(),
    translate()
  • Consider the substring() method in the String
    class
  • One version s.substring(3)
  • This will return a string from the 4th character
    on
  • Another version s.substring (3,6)
  • This version will return a string from the 3rd to
    the 5th character
  • There are multiple versions of the same method
  • Differentiated by their parameter list
  • The substring method can take one OR two
    parameters
  • This is called overloading

106
More on overloading
  • Consider the operator
  • It can mean integer addition 35 8
  • It can mean floating-point addition 3.05.0
    8.0
  • It can mean string concatenation foo bar
    foobar
  • The operator has multiple things it can do
  • a.k.a. the operator is overloaded

107
More on more on overloading
  • Consider the valueOf() method in the String class
  • s.valueOf (3)
  • The parameter is an int
  • s.valueOf (3.5)
  • The parameter is a double
  • s.valueOf (3)
  • The parameter is a char
  • There are multiple versions of this method
  • Differentiated by their parameter list
  • Thus, the valueOf() method is overloaded

108
Accessors
  • Some methods allow us to find out information
    about an object
  • In the Rectangle class getWidth(), getHeight()
  • These methods are called accessors
  • They allow us to access attributes of the object
  • An accessor is a method that allows us to find
    out attributes of object
  • Usually start with get in the method name
  • I wont use this terminology much, but the book
    uses it

109
Mutators
  • Some methods allow us to set information about
    the object
  • In the Rectangle class setLocation(),
    setBounds()
  • These methods are called mutators
  • They allow us to change (or mutate) the
    attributes of an object
  • A mutator is a method that allows us to set
    attributes of object
  • Usually start with set in the method name
  • I wont use this terminology much, but the book
    uses it

110
Constructors
  • A constructor is a special method called ONLY
    when you are creating (or constructing) and
    object
  • The name of the constructor is ALWAYS the exact
    same name as the class
  • Scanner stdin new Scanner (System.in)
  • String foo new String (hello world)
  • There can be overloaded constructors
  • Rectangle r new Rectangle()
  • Rectangle s new Rectangle (1, 2, 3, 4)

111
Calling the Circle constructor
  • To create a Circle object
  • Circle c1 new Circle()
  • This does four things
  • Creates the c1 reference
  • Creates the Circle object
  • Makes the c1 reference point to the Circle
    object
  • Calls the constructor with noparameters (the
    default constructor)
  • The constructor is always the first method called
    when creating (or constructing) an object

112
Calling the Circle constructor
  • To create a Circle object
  • Circle c1 new Circle(2.0)
  • This does four things
  • Creates the c1 reference
  • Creates the Circle object
  • Makes the c1 reference point to the Circle
    object
  • Calls the constructor with 1double parameters
    (the specificconstructor)
  • The constructor is always the first method called
    when creating (or constructing) an object

113
Constructor varieties
  • The default constructor usually sets the
    attributes of an object to default values
  • But thats not why its called default (well get
    to that later)
  • The default constructor ALWAYS takes in zero
    parameters
  • Thus, there can be only one
  • A specific constructor sets the attributes of the
    object to the passed values
  • Well get to why its called a specific
    constructor later
  • The specific constructor takes in one or more
    parameters
  • There can be more than one (via overloading)

114
Method types review
  • With the exception of constructors, these names
    are purely for human categorization
  • Accessor allows one to access parts of the
    object
  • Mutator allows one to change (mutate) a part of
    an object
  • Constructor used to create a object
  • Default constructor takes in no parameters
  • Specific constructor takes in one or more
    parameters
  • Facilitator
  • Any method that is not one of the above
Write a Comment
User Comments (0)
About PowerShow.com