Chapter No.
: 2
Classes and
Objects
Topic Learning Outcome
Explain classes and objects
Define constructor and overloading of method to
solve a given problem
Apply static members concept to solve a given
problem
Define methods with objects as parameter and
return value.
Apply nested and inner classes concepts to solve a
given problem
Draw class diagrams using UML notations for a
given scenario
School topics
of Computer
Science
& Engineering
PS : These
are
primitive
steps in
Classes & Objects
1. Class Fundamentals, Declaring Objects, Assigning
Object Reference Variables
2. Introducing Methods and Constructors
3. Overloading : Method and Constructor
4. thisKeyword, static keyword, Garbage Collection,
finalize method
5. Parameter Passing
6. Returning Objects
7. Access Control
8. Understanding static and final keywords
9. Nested class and inner classes
School of Computer Science & Engineering
Class Fundamentals
A class is a description of a kind of object.
A programmer may define a class
Or may use predefined classes that comes in class libraries
A class is merely a plan for a possible object(s). It
does not by itself create any objects.
When a programmer wants to create an object the
new operator is used with the name of the class.
From one class any number of instance can be
created.
Creating an object is called instantiation.
School of Computer Science & Engineering
Class Fundamentals
It is an encapsulation of attributes and methods
FIGURE
class
Ob1
CIRCLE
Ob3
Ob2
RECTANGLE
School of Computer Science & Engineering
SQUARE
Class Syntax
class <ClassName>
{
attributes/variables;
Constructors();
methods();
}
School of Computer Science & Engineering
Class Example
class Student
{
int iID;
String sName;
void insertRecord(int iID, String sName){
//method body
}
void displayRecord(){
//method body
}
Student(){
//constructor body
}
School of Computer Science & Engineering
Objects
Object is an instance of a class which is an entity
with its own attribute, values and methods.
School of Computer Science & Engineering
Objects Syntax and Example
An object has three characteristics
State: represents data (value) of an object.
Behavior: represents the behavior (functionality) of an
object such as deposit, withdraw etc.
Identity: Object identity is typically implemented via a
unique ID. The value of the ID is not visible to the external
user. But,it is used internally by the JVM to identify each
object uniquely.
<ClassName> <ObjectName> = new <Constructor>;
Student Ravi = new Student();
School of Computer Science & Engineering
Objects with Memory Allocation
Consider two objects of Student class are created
and initializing the value to these objects by
invoking the insertRecord method on it.
Here, we are displaying the state (data) of the
objects by invoking the displayRecord method.
School of Computer Science & Engineering
Assigning Object Reference Variable
We can assign value of reference variable to
another reference variable.
Reference Variable is used to store the address of
the variable.
Assigning Reference will not create distinct copies of
Objects.
All reference variables are referring to same Object.
School of Computer Science & Engineering
Assigning Object Reference Variable
Example
Student Ravi = new Student();
Student Rajesh = Ravi;
Ravi is reference variable which contain the address
of Actual Student Object.
Rajesh is another reference variable
Rajesh is initialized with Ravi means Ravi and
Rajesh both are referring same object, thus it does
not create duplicate object, nor does it allocate
extra memory.
School of Computer Science & Engineering
Methods
In Java Class , We can add user defined method.
Method is equivalent to Functions in C/C++
Programming.
Syntax
<ReturnType> <MethodName> (<ArgumentList>){
//method body
}
ReturnType is nothing but the value to be returned
to an calling method.
MethodName is an name of method that we are
going to call through any method.
ArgumentList is the different parameters that we
are going to pass to a method.
School of Computer Science & Engineering
Methods
Method can return any type of value.
Method can return any Primitive data type
int sumInteger (int num1,int num2);
Method can return Object of Class Type.
Rectangle sumRectangle (int num1,int num2);
Method sometimes may not return value.
void sumInteger (int num1,int num2);
School of Computer Science & Engineering
Methods
Method can accept any number of parameters.
Method can accept any data type as parameter.
Method can accept Object as Parameter
Method can accept no Parameter.
Parameters are separated by Comma.
Parameter must have Data Type
Method Definition contain the actual body of the
method.
Method can take parameters and can return a
value.
School of Computer Science & Engineering
Methods
Ravi is an Object of Type Student.
We are calling method insertRecord by writing
Syntax
<Object_Name> [DOT] <Method_Name>
(<ParameterList>);
Example
Ravi.insertRecord(1,Ravi);
Function call is always followed by Semicolon.
School of Computer Science & Engineering
Constructors
Constructor in java is a special type of method that
is used to initialize the object.
Java constructor is invoked at the time of object
creation. It constructs the values i.e. provides data
for the object that is why it is known as constructor.
There are basically two rules defined for the
constructor.
Constructor name must be same as its class name
Constructor must have no explicit return type
There are two types of constructors:
Default constructor (no-arg constructor)
Parameterized
constructor
School of Computer Science & Engineering
Constructors
School of Computer Science & Engineering
Constructors
School of Computer Science & Engineering
Constructors
Some rules of constructor
Constructor Initializes an Object.
Constructor cannot be called like methods.
Constructors are called automatically as soon as object gets
created.
Constructor dont have any return Type. (even Void)
Constructor name is same as that of Class Name.
Constructor can accept parameter.
Summary
new Operator will create an object.
As soon as Object gets created it will call Constructor.
Thus Constructor Initializes an Object as soon as after
creation.
School of Computer Science & Engineering
Constructors
Example
School of Computer Science & Engineering
Method Overloading
If a class have multiple methods by same name but
different parameters (signature), it is known as
Method Overloading.
If we have to perform only one operation, having
same name of the methods increases the readability
of the program.
Suppose you have to perform addition of the given
numbers but there can be any number of arguments,
if you write the method such as sumInteger(int
a,int b) for two parameters, and sumInteger(int
a,int b,int c) for three parameters then it may be
difficult for you as well as other programmers to
understandSchool
the ofbehavior
of the
method because its
Computer Science
& Engineering
Method Overloading
School of Computer Science & Engineering
Constructor Overloading
Similar
to
method
overloading,
constructor
overloading has a multiple constructors by same
name but different parameters (signature).
If we have to perform only one operation, having
same name of the methods increases the readability
of the program.
School of Computer Science & Engineering
this keyword
There can be a lot of usage of java this keyword. In
java, this is a reference variable that refers to the
current object.
this keyword can be used to refer current class
instance variable.
this() can be used to invoke current class constructor.
this keyword can be used to invoke current class
method (implicitly)
this can be passed as an argument in the method call.
this can be passed as argument in the constructor
call.
this keyword can also be used to return the current
class instance.
School of Computer Science & Engineering
this keyword
this keyword can be used to refer current class
instance variable.
this can be used to invoke current class constructor.
this keyword can be used to invoke current class
method (implicitly)
School of Computer Science & Engineering
this keyword
this keyword can be used to invoke current class
method (implicitly)
School of Computer Science & Engineering
Garbage Collection
In java, garbage means unreferenced objects.
Garbage Collection is process of reclaiming the
runtime unused memory automatically. In other
words, it is a way to destroy the unused objects.
To do so, we were using free() function in C language
and delete() in C++. But, in java it is performed
automatically. So, java provides better memory
management.
Advantages of Garbage Collection
It makes java memory efficient because garbage collector
removes the unreferenced objects from heap memory.
It is automatically done by the garbage collector(a part of
JVM) so we don't need to make extra efforts.
School of Computer Science & Engineering
Garbage Collection
There are many ways:
By nulling the reference
By assigning a reference to another
By anonymous object etc.
By nulling a reference :
Employee e = new Employee();
e = null;
By assigning a reference to another:
Employee e1=new Employee();
Employee e2=new Employee();
e1=e2; //now the first object referred by e1 is
available for garbage collection
By anonymous object:
new Employee();
School of Computer Science & Engineering
Garbage Collection : Methods
finalize() method : The finalize() method is invoked
each time before the object is garbage collected. This
method can be used to perform cleanup processing.
This method is defined in Object class as :
protected void finalize(){}
Note: The Garbage collector of JVM collects only those
objects that are created by new keyword. So if you
have created any object without new, you can use
finalize method to perform cleanup processing
(destroying remaining objects).
School of Computer Science & Engineering
Garbage Collection : Methods
gc() method : The gc() method is used to invoke the
garbage collector to perform cleanup processing. The
gc() is found in System and Runtime classes.
public static void gc(){}
Note: Garbage collection is performed by a daemon
thread called Garbage Collector(GC). This thread calls
the finalize() method before object is garbage
collected.
School of Computer Science & Engineering
Passing Parameters
School of Computer Science & Engineering
Passing Parameters
School of Computer Science & Engineering
Access Control (or Modifier)
There are two types of modifiers in java: access
modifiers and non-access modifiers.
The access modifiers in java specifies accessibility
(scope) of a data member, method, constructor or
class.
There are 4 types of java access modifiers:
default
private
protected
public
There are many non-access modifiers such as static,
abstract, synchronized, native, volatile, transient
School of Computer Science & Engineering
Access Control (or Modifier)
Access
Modifier
Within
Class
Within
Package
Outside
Package by
Subclass only
Outside
Package
Default
Private
Protected
Public
School of Computer Science & Engineering
static keyword
The static keyword in java is used for memory
management mainly.
We can apply java static keyword with variables,
methods, blocks and nested class.
The static keyword belongs to the class than
instance of the class.
The static can be:
variable (also known as class variable)
method (also known as class method)
block
nested class
School of Computer Science & Engineering
static keyword
Static variable
If you declare any variable as static, it is known static
variable.
The static variable can be used to refer the common
property of all objects e.g. company name of employees,
college name of students etc.
The static variable gets memory only once in class area at
the time of class loading.
It makes your program memory efficient (i.e it saves
memory).
School of Computer Science & Engineering
static variable
School of Computer Science & Engineering
static method
If you apply static keyword with any method, it is
known as static method.
A static method belongs to the class rather than object of a
class.
A static method can be invoked without the need for
creating an instance of a class.
static method can access static data member and can
change the value of it.
School of Computer Science & Engineering
static method
Example
School of Computer Science & Engineering
static block
Is used to initialize
the
static
data
member.
It
is
executed
before
main
method
at
time
the
of
classloading.
Example
School of Computer Science & Engineering
final keyword
The final keyword in java is used to restrict the user.
The java final keyword can be used in many
context. Final can be:
variable
method
class
School of Computer Science & Engineering
final variable
If you make any variable as final, you cannot
change the value of final variable (It will be
constant).
School of Computer Science & Engineering
final method
If you make any method as final, you cannot
override it.
School of Computer Science & Engineering
final class
If you make any class as final, you cannot extend it.
School of Computer Science & Engineering
Nested Class or Inner Classes
Java inner class or nested class is a class i.e.
declared inside the class or interface.
We use inner classes to logically group classes and
interfaces in one place so that it can be more
readable and maintainable.
Additionally, it can access all the members of outer
class including private data members and methods.
School of Computer Science & Engineering
Advantages
There are basically three advantages of inner
classes in java. They are as follows:
Nested classes represent a special type of relationship that
is it can access all the members (data members and
methods) of outer class including private.
Nested classes are used to develop more readable and
maintainable code because it logically group classes and
interfaces in one place only.
Code Optimization : It requires less code to write.
School of Computer Science & Engineering
Types of Inner Class
Types
Description
Member Inner
Class
A class created within class and outside
method.
Anonymous
Inner Class
A class created for implementing interface or
extending class. Its name is decided by the java
compiler.
Local Inner
Class
A class created within method.
Static Nested
Class
A static class created within class.
Nested Interface
An interface created within class or interface.
School of Computer Science & Engineering
Model Questions
What is class and object? Write a program
demonstrating access of same object with more
than one reference? (L2)
Write a class MyName with following members
( private String privateName; public String
publicName; String defaultName; )
a) Include multiple constructors to initialize the
data members
b) Include a method to fetch privateName which
can be invoked outside the class
c) Write a test programs to create two objects of
MyName using constructors and print the
School of Computer Science & Engineering
Model Questions
Draw a class diagram for the following scenario :
Consider a bank "ABC Bank" which provides a banking
services and to start with customer can open a bank
account. The account can be Savingsaccount /
CurrentAccount and there is no interest paid for
CurrentAccount.
The
other
customer
debit
and
can
services
credit
are,
amount
the
to
BankAccount. The customer is allowed to get the
status of his accounts at any time and he can
transfer amount from one account to another
account.
School of Computer Science & Engineering
Model Questions
A department cannot exist without college. Create
classes called as College {name, department,
colCode} and Department {name, depCode,
numOfStu} within College class.
a)Define method in College class to create various
departments.
b)Define a method to calculate total strength of
students of a college.
c)Write a test program to create few colleges and
departments within it. Then print the total number
of students of each college
(L3)
Explain the need of method overloading with a
School of Computer Science & Engineering
Model Questions
Consider
register
for
courseTitle,
Student(stuId,
4
courses,
stuName,
semester),
Course
(courseNo,
courseDuration(numberOfhours),
fevoriteCourse). The student can view all the
courses registered and mark the courses as favorite
during registration. Write a method to return the
favorite courses and display. Identify the type of
relationship, appropriate methods and write a tester
class to demonstrate register courses by a student,
and display favorite courses.
(L3)
School of Computer Science & Engineering
Model Questions
Consider a Customer (customerId, customerName,
phoneNum, billAmount ) and the shop classifies
customer as regular customer and privileged
customer. The shop offers discount of 5% on every
purchase by a regular customer and it issues a
membership card to a privileged customer and offer
will be always better than regular customer. The
shop prepares a list of customers (regular and
privileged randomly) visited shop and view the bill
amount of individual customer and total bill amount
of all the customers. Display count of regular
customers and privileged customers. Write a java
program to simulate the above scenario.
School of Computer Science & Engineering
Interview Questions
Define class and object. Explain them with an
example using java
What is a method? Provide several signatures of the
methods
Define class and object. Explain them with an
example using java
What is a method? Provide several signatures of the
methods
Difference between instance variable and a class
variable
Explain how to create instance of a class by giving
School of Computer Science & Engineering