View
217
Download
2
Embed Size (px)
Citation preview
Chapter 3
Classes and Methods
2
Knowledge Goals
• Appreciate the difference between a class in the abstract sense and a class as a Java construct
• Know what attributes are• Know what responsibilities are• Know how assignment of an object reference
differs from assignment of a standard type
3
Knowledge Goals
• Appreciate how aliases can lead to errors• Know what garbage collection is• Understand the distinction between instance
methods and class methods• Know what a constructor does• Appreciate the difference between void and
value-returning methods• Understand what immutability is
4
Skill Goals
• Determine the attributes and responsibilities of a class
• Write the heading for a new class• Write the class declaration for a new class• Write an instance method• Write a class method• Write a constructor
5
Skill Goals
• Write a helper method• Write a value-returning method• Assemble class declarations into a working
class
6
New Classes of Objects
A new class is just like an applicationexcept that it doesn't have a main method
7
New Classes of Objects
Can youname some
attributesfor the
cat class?
8
New Classes of Objects
Instance values
A value that is associated with a specific object
Class value
A value that is associated with a class and is the same for every object of the class
Attributes
The values defined by a class that are used to represent its objects; the combination of instance and class values
Were any cat attributes class values?
9
New Classes of Objects
See thedifferencebetween
classand
instancevalues?
10
New Classes of Objects
A classand
threeinstantiated
objects
11
New Classes of Objects
With each new class comes responsibilities…
Responsibilities
The operations that are provided by a class of objects
Class responsibility
An operation performed with respect to a class of objects
Instance responsibility
An operation performed with respect to a specific object
12
New Classes of Objects
Method
A Java subprogram
Class method
A method that implements a class responsibility
Instance method
A method that implements an instance responsibility
13
New Classes of Objects
Constructor
An operation (responsibility) that creates a new instance of a class
Constructor (in Java)
A method with the same name as the class, which is neither a void or a value-returning method
How many kinds of attributes and responsibilities are there?
14
New Classes and Objects
Every classmust have
aconstructor;if you don'tdefine one,
Javasupplies
one
15
Overview of Java Data Types
16
Overview of Java Data Types
Primitive values require a fixed number of bytes;object values can be any size, so…
17
Overview of Java Data Types
A variable of a primitive type contains the value of the variable
A variable of an object type contains the address of where the value (object) begins
18
Overview of Java Data Types
19
Overview of Java Data Types
letter
char letter;
String title;
String book;
letter = ‘J’;
title = “Problem Solving”;
book = title; ExampleWalkthrough
20
Overview of Java Data Types
letter
title
char letter;
String title;
String book;
letter = ‘J’;
title = “Problem Solving”;
book = title; ExampleWalkthrough
21
Overview of Java Data Types
letter
title
book
char letter;
String title;
String book;
letter = ‘J’;
title = “Problem Solving”;
book = title; ExampleWalkthrough
22
Overview of Java Data Types
letter
title
book
char letter;
String title;
String book;
letter = ‘J’;
title = “Problem Solving”;
book = title;
‘J’
ExampleWalkthrough
23
Overview of Java Data Types
letter
title
book
char letter;
String title;
String book;
letter = ‘J’;
title = “Problem Solving”;
book = title;
2003
“Problem Solving”
Memory Location 2003
‘J’
ExampleWalkthrough
24
Overview of Java Data Types
letter
title
book
char letter;
String title;
String book;
letter = ‘J’;
title = “Problem Solving”;
book = title;
2003
“Problem Solving”
Memory Location 2003
2003
‘J’
ExampleWalkthrough
25
Overview of Java Data Types
letter
title
book
char letter;
String title;
String book;
letter = ‘J’;
title = “Problem Solving”;
book = title;
2003
“Problem Solving”
Memory Location 2003
2003
‘J’
WalkthroughComplete
26
Overview of Java Data Types
AliasWhen
multiplevariables
referto thesame
object, acting assynonyms
27
Overview of Java Data Types
Address 000011010101 is unreachable
28
Recycling Discarded ObjectsGarbage
Objects that are unreachable
Garbage collection
Recycling of memory when objects are no longer needed
Explicit memory management
Recycling of object memory that must be manually coded
Memory leak
Failure to recycle memory when explicit memory management is being used
Javahas
automaticgarbagecollection
29
Responsibilities as Methods
Heading
Body
Parameter list contains information the method must have in order to execute; this information is given at the call
30
Responsibilities as Methods
Argumentssubstituted
forparameters
at time of call
31
Responsibilities as Methods
32
Responsibilities as Methods
Class variable
Instance variables
How does Java distinguish them?
33
Responsibilities as methods
Reviewvoid methods
Called as a statement
value-returning methods
Called in an expression; return a value
34
Responsibilities as methods
Constructor
An operation (method) that creates a new instance of a class
Same name as class Default constructor (no parameters) Parameterized constructor (with parameters) A class can have more than one constructor Is almost always public (Why?)
35
Responsibilities as methods
ObserverAn operation that returns information from an object without changing the content of the objectImmutabilityThe property of a class that its instances cannot be modified once they are createdConstructor-Observer classesClasses that have only constructors and observers and are therefore immutable (all we've seen so far)
36
Cat Class
public class Cat
{
String name;
String color;
float weight;
// constructors
public Cat()
{
name = " ";
color = " ";
weight = 0.0;
}
37
Cat Class
public Cat(String newName, String newColor, float newWeight)
{
name = newName;
weight = newWeight;
colr = newColor;
}
public String getName()
{
return name;
}
Methods that return the value of a variableare often "get" + identifier. (Why?)
38
Cat Class
public float getWeight()
{
return weight;
}
public String getColor()
{
return color;
}
}
Is class Cat immutable?
39
Driver for Cat Classpublic class CatDriver{ public static void main (String[] args) { Cat myCat = new Cat("Meow", "ginger", 10.5); Cat cat = new Cat(); System.out.print("myCat "); System.out.println(myCat.getName() + " " + myCat.getColor() + " " + myCat.getWeight()); System.out.print("cat "); System.out.println(cat.getName() + " " + cat.getColor() + " " + cat.getWeight()); }}
40
Extras
I amcalled the
firstprogrammer
Can youremembermy name?
Myfather'sname?