Lecture 8
Lecture 8
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 1 Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 2
rights reserved. 0132130807 rights reserved. 0132130807
distinctly identified.
• For example, a student, a desk, a circle, a button, and even Circle Object 1 Circle Object 2 Circle Object 3 Three objects of
the Circle class
Data Fields: Data Fields: Data Fields:
a loan can all be viewed as objects. radius is 10 radius is 25 radius is 125
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 7 Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 8
rights reserved. 0132130807 rights reserved. 0132130807
Constructors, cont. Creating Objects Using Constructors
• A constructor with no parameters is referred to
as a no-arg constructor. new ClassName();
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 11 Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 12
rights reserved. 0132130807 rights reserved. 0132130807
Declaring/Creating Objects Accessing Objects
in a Single Step • Referencing the object’s data:
objectRefVar.data
ClassName objectRefVar = new ClassName();
e.g., myCircle.radius
Assign object reference Create an object
Example: • Invoking the object’s method:
Circle myCircle = new Circle();
objectRefVar.methodName(arguments)
e.g., myCircle.getArea()
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 13 Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 14
rights reserved. 0132130807 rights reserved. 0132130807
Circle myCircle = new Circle(5.0); no value Circle myCircle = new Circle(5.0); no value
myCircle myCircle
SCircle yourCircle = new Circle(); Circle yourCircle = new Circle();
radius: 5.0
Create a circle
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 15 Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 16
rights reserved. 0132130807 rights reserved. 0132130807
Trace Code, cont. Trace Code, cont.
Circle myCircle = new Circle(5.0); reference value
myCircle
Circle yourCircle = new Circle();
Circle myCircle = new Circle(5.0); myCircle reference value
yourCircle.radius = 100; : Circle
Circle yourCircle = new Circle();
radius: 5.0
yourCircle.radius = 100; Assign object reference : Circle
to myCircle
radius: 5.0 yourCircle no value
Declare yourCircle
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 17 Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 18
rights reserved. 0132130807 rights reserved. 0132130807
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 19 Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 20
rights reserved. 0132130807 rights reserved. 0132130807
Trace Code, cont. Caution
Circle myCircle = new Circle(5.0);
myCircle reference value Recall that you use
Circle yourCircle = new Circle(); Math.methodName(arguments) (e.g., Math.pow(3, 2.5))
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 21 Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 22
rights reserved. 0132130807 rights reserved. 0132130807
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 23 Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 24
rights reserved. 0132130807 rights reserved. 0132130807
Default Value for a Data Field Example
• The default value of a data field is
– null for a reference type, Java assigns no default value to a local variable
– 0 for a numeric type, inside a method.
– false for a boolean type, and
– '\u0000' for a char type. public class Test {
• However, Java assigns no default value to a local public static void main(String[] args) {
variable inside a method. int x; // x has no default value
String y; // y has no default value
public class Test { System.out.println("x is " + x);
public static void main(String[] args) { System.out.println("y is " + y);
Student student = new Student(); }
System.out.println("name? " + student.name); }
System.out.println("age? " + student.age);
System.out.println("isScienceMajor? " + student.isScienceMajor);
System.out.println("gender? " + student.gender);
} Compilation error: variables not
} initialized
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 25 Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 26
rights reserved. 0132130807 rights reserved. 0132130807
radius = 1
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All 27
rights reserved. 0132130807