KEMBAR78
Object and class in java | PPT
 OO Programming Concepts
 Creating Objects and Object Reference Variables
› Differences between primitive data type and object type
› Automatic garbage collection
 Constructors
 Modifiers (public, private and static)
 Instance and Class Variables and Methods
 Scope of Variables
 Use the this Keyword
 Case Studies (Mortgage class and Count class)
data field 1
method n
data field n
method 1
An object
...
...
State
Behavior
Data Field
radius = 5
Method
findArea
A Circle object
circle1: Circle
radius = 2
new Circle()
circlen: Circle
radius = 5
new Circle()
...
UML Graphical notation for classes
UML Graphical notation
for objects
Circle
radius: double
findArea(): double
UML Graphical notation for fields
UML Graphical notation for methods
class Circle {
double radius = 1.0;
double findArea(){
return radius * radius * 3.14159;
}
}
ClassName objectReference;
Example:
Circle myCircle;
objectReference = new ClassName();
Example:
myCircle = new Circle();
The object reference is assigned to the object
reference variable.
ClassName objectReference = new ClassName();
Example:
Circle myCircle = new Circle();
1
c: Circle
radius = 1
Primitive type int i = 1 i
Object type Circle c c reference
Created using
new Circle()
1
c1: Circle
radius = 5
Primitive type assignment
i = j
Before:
i
2j
2
After:
i
2j
Object type assignment
c1 = c2
Before:
c1
c2
After:
c1
c2
c2: Circle
radius = 9
As shown in the previous
figure, after the
assignment statement c1 =
c2, c1 points to the same
object referenced by c2.
The object previously
referenced by c1 is no
longer useful. This object
is known as garbage.
Garbage is automatically
TIP: If you know that an
object is no longer
needed, you can explicitly
assign null to a reference
variable for the object.
The Java VM will
automatically collect the
space if the object is not
referenced by any
variable.
 Referencing the object’s data:
objectReference.data
myCircle.radius
 Invoking the object’s method:
objectReference.method
myCircle.findArea()
 Objective: Demonstrate creating
objects, accessing data, and using
methods.
TestCircle Run
Circle(double r) {
radius = r;
}
Circle() {
radius = 1.0;
}
myCircle = new Circle(5.0);
Constructors are a
special kind of
methods that are
invoked to construct
objects.
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
 Objective: Demonstrate using classes from
the Java library. Use the JFrame
class in the javax.swing
package to create two frames;
use the methods in the JFrame
class to set the title, size
and location of the frames and
to display the frames.
TestFrame Run
 Objective: Demonstrate the role of
constructors and use them to create
objects.
TestCircleWithConstructors Run
By default, the class, variable, or data can be
accessed by any class in the same package.
 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.
The get and set methods are used to read and modify private
properties.
TestCircleWithAccessors Run
In this example, private data are used for the
radius and the accessor methods getRadius and
setRadius are provided for the clients to retrieve
and modify the radius.
 Passing by value (the value is the
reference to the object)
Example 6.5 Passing Objects as Arguments
TestPassingObject Run
main
method
ReferencemyCircle
5n 5
times
printAreas
method
Reference
c
myCircle: Circle
radius = 1
Pass by value (here the value is 5)
Pass by value (here the value is the
reference for the object)
Instance variables belong to a specific instance.
Instance methods are invoked by an instance of
the class.
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.
To declare class variables, constants, and methods,
use the static modifier.
CircleWithStaticVariable
-radius
-numOfObjects
+getRadius(): double
+setRadius(radius: double): void
+getNumOfObjects(): int
+findArea(): double
1 radiuscircle1:Circle
-radius = 1
-numOfObjects = 2
instantiate
instantiate
Memory
2
5 radius
numOfObjects
radius is an instance
variable, and
numOfObjects is a
class variable
UML Notation:
+: public variables or methods
-: private variables or methods
underline: static variables or metods
circle2:Circle
-radius = 5
-numOfObjects = 2
Objective: Demonstrate the roles of
instance and class variables and
their uses. This example adds a
class variable numOfObjects to track
the number of Circle objects
created.
TestCircleWithStaticVariable Run
 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.
 Use this to refer to the current object.
 Use this to invoke other constructors of
the object.
Circle[] circleArray = new
Circle[10];
An array of objects is
actually an array of
reference variables. So
invoking
circleArray[1].findArea()
involves two levels of
referencing as shown in the
next figure. circleArray
Circle[] circleArray = new
Circle[10];
reference Circle object 0circleArray[0]
…
circleArray
circleArray[1]
circleArray[9] Circle object 9
Circle object 1
Example 7: Summarizing the
areas of the circles
TotalArea Run
Class abstraction means to separate class
implementation from the use of the class. The
creator of the class provides a description of
the class and let the user know how the class
can be used. The user of the class does not
need to know how the class is implemented.
The detail of implementation is encapsulated
and hidden from the user.
Mortgage
-annualInterestRate: double
-numOfYears: int
-loanAmount: double
+Mortgage()
+Mortgage(annualInterestRate: double,
numOfYears: int, loanAmount: double)
+getAnnualInterestRate(): double
+getNumOfYears(): int
+getLoanAmount(): double
+setAnnualInterestRate(annualInteresteRate: double): void
+setNumOfYears(numOfYears: int): void
+setLoanAmount(loanAmount: double): void
+monthlyPayment(): double
+totalPayment(): double
TestMortgageClass
Run
Mortgage
RunTestVoteCandidate
 java.lang
Contains core Java classes, such as numeric
classes, strings, and objects. This package is
implicitly imported to every Java program.
 java.awt
Contains classes for graphics.
 java.applet
Contains classes for supporting applets.
 java.io
Contains classes for input and output
streams and files.
 java.util
Contains many utilities, such as date.
 java.net
Contains classes for supporting
network communications.
Java API and Core Java classes,
cont.
 java.awt.image
Contains classes for managing bitmap images.
 java.awt.peer
Platform-specific GUI implementation.
 Others:
java.sql
java.rmi
Java API and Core Java classes,
cont.

Object and class in java

  • 2.
     OO ProgrammingConcepts  Creating Objects and Object Reference Variables › Differences between primitive data type and object type › Automatic garbage collection  Constructors  Modifiers (public, private and static)  Instance and Class Variables and Methods  Scope of Variables  Use the this Keyword  Case Studies (Mortgage class and Count class)
  • 3.
    data field 1 methodn data field n method 1 An object ... ... State Behavior Data Field radius = 5 Method findArea A Circle object
  • 4.
    circle1: Circle radius =2 new Circle() circlen: Circle radius = 5 new Circle() ... UML Graphical notation for classes UML Graphical notation for objects Circle radius: double findArea(): double UML Graphical notation for fields UML Graphical notation for methods
  • 5.
    class Circle { doubleradius = 1.0; double findArea(){ return radius * radius * 3.14159; } }
  • 6.
  • 7.
    objectReference = newClassName(); Example: myCircle = new Circle(); The object reference is assigned to the object reference variable.
  • 8.
    ClassName objectReference =new ClassName(); Example: Circle myCircle = new Circle();
  • 9.
    1 c: Circle radius =1 Primitive type int i = 1 i Object type Circle c c reference Created using new Circle()
  • 10.
    1 c1: Circle radius =5 Primitive type assignment i = j Before: i 2j 2 After: i 2j Object type assignment c1 = c2 Before: c1 c2 After: c1 c2 c2: Circle radius = 9
  • 11.
    As shown inthe previous figure, after the assignment statement c1 = c2, c1 points to the same object referenced by c2. The object previously referenced by c1 is no longer useful. This object is known as garbage. Garbage is automatically
  • 12.
    TIP: If youknow that an object is no longer needed, you can explicitly assign null to a reference variable for the object. The Java VM will automatically collect the space if the object is not referenced by any variable.
  • 13.
     Referencing theobject’s data: objectReference.data myCircle.radius  Invoking the object’s method: objectReference.method myCircle.findArea()
  • 14.
     Objective: Demonstratecreating objects, accessing data, and using methods. TestCircle Run
  • 15.
    Circle(double r) { radius= r; } Circle() { radius = 1.0; } myCircle = new Circle(5.0); Constructors are a special kind of methods that are invoked to construct objects.
  • 16.
    A constructor withno 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
  • 17.
     Objective: Demonstrateusing classes from the Java library. Use the JFrame class in the javax.swing package to create two frames; use the methods in the JFrame class to set the title, size and location of the frames and to display the frames. TestFrame Run
  • 18.
     Objective: Demonstratethe role of constructors and use them to create objects. TestCircleWithConstructors Run
  • 19.
    By default, theclass, variable, or data can be accessed by any class in the same package.  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. The get and set methods are used to read and modify private properties.
  • 20.
    TestCircleWithAccessors Run In thisexample, private data are used for the radius and the accessor methods getRadius and setRadius are provided for the clients to retrieve and modify the radius.
  • 21.
     Passing byvalue (the value is the reference to the object) Example 6.5 Passing Objects as Arguments TestPassingObject Run
  • 22.
    main method ReferencemyCircle 5n 5 times printAreas method Reference c myCircle: Circle radius= 1 Pass by value (here the value is 5) Pass by value (here the value is the reference for the object)
  • 23.
    Instance variables belongto a specific instance. Instance methods are invoked by an instance of the class.
  • 24.
    Class variables areshared 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.
  • 25.
    To declare classvariables, constants, and methods, use the static modifier.
  • 26.
    CircleWithStaticVariable -radius -numOfObjects +getRadius(): double +setRadius(radius: double):void +getNumOfObjects(): int +findArea(): double 1 radiuscircle1:Circle -radius = 1 -numOfObjects = 2 instantiate instantiate Memory 2 5 radius numOfObjects radius is an instance variable, and numOfObjects is a class variable UML Notation: +: public variables or methods -: private variables or methods underline: static variables or metods circle2:Circle -radius = 5 -numOfObjects = 2
  • 27.
    Objective: Demonstrate theroles of instance and class variables and their uses. This example adds a class variable numOfObjects to track the number of Circle objects created. TestCircleWithStaticVariable Run
  • 28.
     The scopeof 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.
  • 29.
     Use thisto refer to the current object.  Use this to invoke other constructors of the object.
  • 30.
    Circle[] circleArray =new Circle[10]; An array of objects is actually an array of reference variables. So invoking circleArray[1].findArea() involves two levels of referencing as shown in the next figure. circleArray
  • 31.
    Circle[] circleArray =new Circle[10]; reference Circle object 0circleArray[0] … circleArray circleArray[1] circleArray[9] Circle object 9 Circle object 1
  • 32.
    Example 7: Summarizingthe areas of the circles TotalArea Run
  • 33.
    Class abstraction meansto separate class implementation from the use of the class. The creator of the class provides a description of the class and let the user know how the class can be used. The user of the class does not need to know how the class is implemented. The detail of implementation is encapsulated and hidden from the user.
  • 34.
    Mortgage -annualInterestRate: double -numOfYears: int -loanAmount:double +Mortgage() +Mortgage(annualInterestRate: double, numOfYears: int, loanAmount: double) +getAnnualInterestRate(): double +getNumOfYears(): int +getLoanAmount(): double +setAnnualInterestRate(annualInteresteRate: double): void +setNumOfYears(numOfYears: int): void +setLoanAmount(loanAmount: double): void +monthlyPayment(): double +totalPayment(): double TestMortgageClass Run Mortgage
  • 35.
  • 36.
     java.lang Contains coreJava classes, such as numeric classes, strings, and objects. This package is implicitly imported to every Java program.  java.awt Contains classes for graphics.  java.applet Contains classes for supporting applets.
  • 37.
     java.io Contains classesfor input and output streams and files.  java.util Contains many utilities, such as date.  java.net Contains classes for supporting network communications. Java API and Core Java classes, cont.
  • 38.
     java.awt.image Contains classesfor managing bitmap images.  java.awt.peer Platform-specific GUI implementation.  Others: java.sql java.rmi Java API and Core Java classes, cont.