Download presentation
Presentation is loading. Please wait.
1
Chapter 3 Classes and Methods
2
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
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
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
5 Skill Goals Write a helper method Write a value-returning method Assemble class declarations into a working class
6
6 New Classes of Objects A new class is just like an application except that it doesn't have a main method
7
7 New Classes of Objects Can you name some attributes for the cat class ?
8
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
9 New Classes of Objects See the difference between class and instance values?
10
10 New Classes of Objects A class and three instantiated objects
11
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
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
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
14 New Classes and Objects Every class must have a constructor; if you don't define one, Java supplies one
15
15 Overview of Java Data Types
16
16 Overview of Java Data Types Primitive values require a fixed number of bytes; object values can be any size, so…
17
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
18 Overview of Java Data Types
19
19 Overview of Java Data Types letter char letter; String title; String book; letter = ‘J’; title = “Problem Solving”; book = title; Example Walkthrough
20
20 Overview of Java Data Types letter title char letter; String title; String book; letter = ‘J’; title = “Problem Solving”; book = title; Example Walkthrough
21
21 Overview of Java Data Types letter title book char letter; String title; String book; letter = ‘J’; title = “Problem Solving”; book = title; Example Walkthrough
22
22 Overview of Java Data Types letter title book char letter; String title; String book; letter = ‘J’; title = “Problem Solving”; book = title; ‘J’ Example Walkthrough
23
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’ Example Walkthrough
24
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’ Example Walkthrough
25
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’ Walkthrough Complete
26
26 Overview of Java Data Types Alias When multiple variables refer to the same object, acting as synonyms
27
27 Overview of Java Data Types Address 000011010101 is unreachable
28
28 Recycling Discarded Objects Garbage 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 Java has automatic garbage collection
29
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
30 Responsibilities as Methods Arguments substituted for parameters at time of call
31
31 Responsibilities as Methods
32
32 Responsibilities as Methods Class variable Instance variables How does Java distinguish them?
33
33 Responsibilities as methods Review void methods Called as a statement value-returning methods Called in an expression; return a value
34
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
35 Responsibilities as methods Observer An operation that returns information from an object without changing the content of the object Immutability The property of a class that its instances cannot be modified once they are created Constructor-Observer classes Classes that have only constructors and observers and are therefore immutable (all we've seen so far)
36
36 Cat Class public class Cat { String name; String color; float weight; // constructors public Cat() { name = " "; color = " "; weight = 0.0; }
37
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 variable are often "get" + identifier. (Why?)
38
38 Cat Class public float getWeight() { return weight; } public String getColor() { return color; } Is class Cat immutable?
39
39 Driver for Cat Class public 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
40 Extras I am called the first programmer Can you remember my name? My father's name?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.