Chapter 4 - Meskauskas personal pages

Download Report

Transcript Chapter 4 - Meskauskas personal pages

Chapter 4: Writing Classes
Presentation slides for
Java Software Solutions
for AP* Computer Science A
2nd Edition
by John Lewis, William Loftus, and Cara Cocking
© 2006 Pearson Education
Writing Classes
 We've been using predefined classes. Now we will
learn to write our own classes to define objects
 Chapter 4 focuses on:
•
•
•
•
•
•
class definitions
encapsulation and Java modifiers
method declaration, invocation, and parameter passing
method overloading
method decomposition
graphics-based objects
© 2006 Pearson Education
2
Objects
 An object has:
• state - descriptive characteristics
• behaviors - what it can do (or what can be done to it)
 For example, consider a coin that can be flipped so
that it's face shows either "heads" or "tails"
• state = (heads or tails)
• behavior = can be flipped
 Note that the behavior of the coin might change its
state
© 2006 Pearson Education
3
Classes
 A class is a blueprint of an object
 It is the model or pattern from which objects are
created
 For example, the String class is used to define
String objects
 Each String object contains specific characters (its
state)
 Each String object can perform services (behaviors)
such as toUpperCase
© 2006 Pearson Education
4
Classes
 The String class was provided for us by the Java
standard class library
 But we can also write our own classes that define
specific objects that we need
 For example, suppose we want to write a program
that simulates the flipping of a coin
 We can write a Coin class to represent a coin object
© 2006 Pearson Education
Classes
 A class contains data declarations and method
declarations
int x, y;
char ch;
Data declarations
Method declarations
© 2006 Pearson Education
The Coin Class
 In our Coin class we could define the following data:
• face, an integer that represents the current face
• HEADS and TAILS, integer constants that represent the two
possible states
 We might also define the following methods:
• a Coin constructor, to initialize the object
• a flip method, to flip the coin
• a isHeads method, to determine if the current face is heads
• a toString method, to return a string description for
printing
© 2006 Pearson Education
The Coin Class
 See CountFlips.java (page 199)
 See Coin.java (page 200)
 Note that the CountFlips program did not use the
toString method
 A program will not necessarily use every service
provided by an object
 Once the Coin class has been defined, we can use it
again in other programs as needed
© 2006 Pearson Education
Data Scope
 The scope of data is the area in a program in which
that data can be used (referenced)
 Data declared at the class level can be used by all
methods in that class
 Data declared within a method can be used only in
that method
 Data declared within a method is called local data
© 2006 Pearson Education
Instance Data
 The face variable in the Coin class is called instance
data because each instance (object) of the Coin
class has its own
 A class declares the type of the data, but it does not
reserve any memory space for it
 Every time a Coin object is created, a new face
variable is created as well
 The objects of a class share the method definitions,
but each has its own data space
 That's the only way two objects can have different
states
© 2006 Pearson Education
Instance Data
See FlipRace.java (page 203)
© 2006 Pearson Education