Objects and Classes
Creating Objects and Object Reference Variables
– Differences between primitive data type and object type
Constructors
Modifiers (public, private and static)
Instance and Class Variables and Methods
Scope of Variables
Use the this Keyword
Class Concept
A Circle object
An object
Data Field
x0=1.0
y0=2.0
radius = 5
data field 1
...
State
Method
FindArea()
data field n
method 1
...
method n
Behavior
UML: Unified Modeling Language
UML Graphical notation for classes
Circle
x0: double
y0: double
radius: double
UML Graphical notation for fields
UML Graphical notation for methods
findArea(): double
new Circle()
new Circle()
Circle_1: Circle
x0 = 1.0
y0 = 2.0
radius = 2
Circle_n: Circle
...
x0 = 3.0
y0 = 10.0
radius = 5
UML Graphical notation
for objects
Class Circle Declaration
class Circle
{
double x0 = 0.0;
double y0 = 0.0;
double radius = 1.0;
double findArea()
{
return radius*radius*3.14159;
}
}
Declaring Object Reference Variables
ClassName objectName;
Example:
Circle myCircle;
Creating Objects
objectName = new ClassName();
Example:
myCircle = new Circle();
The object reference is assigned to the object reference
variable.
Declaring/Creating Objects
in a Single Step
ClassName objectName = new
ClassName();
Example:
Circle myCircle = new Circle();
Test Class Circle
public class TestCircle
{
public static main(String args[])
{
double area1, area2;
Circle myCircle1 = new Circle();
Circle myCircle2 = new Circle();
area1 = MyCircle1.findArea();
area2 = MyCircle2.findArea();
System.out.println (”S1=”+area1);
System.out.println (”S2=”+area2);
}
}
Differences between variables of
primitive Data types and Object types
Primitive type
int i = 1
i
1
Object type
Circle c
c
reference
c: Circle
Created using
new Circle()
radius = 1
Object reference
The object reference is a handle to the location where the object
resides in memory.
When a primitive value is passed into a method, a copy of the
primitive is made. The copy is what is actually manipulated in the
method. So, the value of the copy can be changed within the
method, but the original value remains unchanged.
When an object reference or array reference is passed into a
method, a copy of the reference is actually manipulated by the
method. So, the method can change the attributes of the object.
Accessing Objects
Referencing
the object’s data:
objectName.data
Example: r= myCircle.radius;
myCircle.radius=10.0;
Invoking
the object’s method:
objectName.method()
Example: S = myCircle.findArea();
Constructors
Circle()
{
x0 = 0.0;
y0 = 0.0;
radius = 1.0;
}
Constructors are a special
kind of methods that are
invoked to construct
objects.
Circle(double x, double y, double r)
{
x0 = x;
y0 = y;
radius = r;
}
Constructors, cont.
A constructor with no parameters is referred to as a default
constructor.
·
Constructors must have the same name as the class itself.
·
Constructors do not have a return type—not even void.
·
Constructors are invoked using the new operator when an
object is created. Constructors play the role of initializing objects.
Constructors and method
for Class Circle
public class Circle
{
...
Circle() // Default constructor
{
x0 = 0.0;
y0 = 0.0;
radius = 1.0;
}
Circle(double x, double y, double r)
{
x0 = x;
y0 = y;
radius = r;
}
findArea()
{
return radius*radius*3.14159;
}
}
Default Constructor
If a class does not define any constructor
explicitly,
a default constructor is defined implicitly.
If a class defines constructor implicitly, a default
constructor does not exist unless it is defined
explicitly.
Using Constructors
Objective:
Demonstrate the role of
constructors and use them to create objects.
myCircle = new Circle();
myCircle = new Circle(2,.0,3.0,5.0);
Visibility Modifiers and
Accessor Methods
By default, the class, variable, or data can be
accessed by any class in the same package (will
be explained later ).
public
The class, data, or method is visible to any class in any
package.
private
The data or methods can be accessed only by the
declaring class.
Visibility modifiers and accessor methods
public class Circle
{
private double x0 = 0.0;
private double y0 = 0.0;
private double radius = 1.0;
public double getRadius()
{
return radius;
}
public void setRadius(double newRadius)
{
radius = newRadius;
}
public void setRadius(int newRadius)
{
radius = newRadius;
}
…
}
Instance Variables and Methods
Instance variables belong to a specific instance.
Instance methods are invoked by an instance of
the class.
Class Variables, Constants,
and Methods
Class variables are shared by all the instances of the
class.
Class methods are not tied to a specific object.
Class constants are final variables shared by all
the instances of the class.
Class Variables, Constants,
and Methods, cont.
To declare class variables, constants, and methods,
use the static modifier.
private static int numberOfObjects=0;
public final static double PI = 3.1415926;
Class Variables, Constants,
and Methods, example.
public class Circle
{
private static int numberOfObjects=0;
public final static double PI = 3.1415926;
Circle(double x, double y, double r) {
x0=x; y0=y; radius=r;
numberOfObjects++;
}
public static getNumberOfObjects() {
return numberOfObjects;
}
…
}
Class Variables, Constants,
and Methods, cont.
UML Notation:
+: public variables or methods
-: private variables or methods
underline: static variables or metods
Memory
circle1:Circle
instantiate
radius is an instance
variable, and
numOfObjects is a
class variable
CircleWithStaticVariable
radius
-radius = 1
-numOfObjects = 2
-radius
-numOfObjects
+getRadius(): double
+setRadius(radius: double): void
+getNumOfObjects(): int
+findArea(): double
1
2
numOfObjects
5
radius
instantiate
circle2:Circle
-radius = 5
-numOfObjects = 2
Math is class with private
constructor
Class Math contains only public static
methods:
Math.sin()
Math.asin ()
Math.ceil()
Math.round()
Math.abs()
Math.min()
Math.pow()
Math.exp()
Math.sqrt()
...
Scope of Variables
The scope of instance and class variables is the
entire class. They can be declared anywhere inside
a class.
The scope of a local variable starts from its
declaration and continues to the end of the block
that contains the variable. A local variable must be
declared before it can be used.
The Keyword this
Use this to refer to the current object.
Use this to invoke other constructors of the object.
public void setRadius(double radius)
{
this.radius = radius;
}
public Circle()
{
this(0.0, 0.0, 1.0);
}
© Copyright 2026 Paperzz