Chapter 3 Classes and Methods. 2 Knowledge Goals Appreciate the difference between a class in the...

Preview:

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?

Recommended