You are on page 1of 4

SEM-III

KNS INSTITUTE OF TECHNLOGY

JAVA CH-2

DEPARTMENT OF MCA

Programming with JAVA


Chapter-2

Introducing Classes
2.1 Class Fundamentals
What is a Class?
It defines a new data type. Once defined, this new type can be used to create objects of that type.
Thus, a class is a template for an object, and an object is an instance of a class.

2.1.1 The General Form of a Class


class classname
{
type instance-variable1;
type instance-variable2;
...
type methodname1(parameter-list)
{
// body of method
}
type methodnameN(parameter-list)
{
// body of method
}
}

o A class is declared by use of the class keyword


o The data, or variables, defined within a class are called
instance variables.
o Collectively, the methods and variables defined within a
class are called members of the class.
o Variables defined within a class are called instance
variables because each instance or object of the class
contains its own copy of these variables.
o Notice that the general form of a class does not specify a
main( ) method. Java classes do not need to have a main( )
method.
o You only specify one if that class is the starting point for
your program. Further, applets don't require a main( )
method at all.

o C++ programmers will notice that the class declaration and the implementation of the
methods are stored in the same place and not defined separately.
o This sometimes makes for very large .java files, since any class must be entirely defined
in a single source file.
o This design feature was built into Java because it was felt that in the long run, having
specification, declaration, and implementation all in one place makes for code that is
easier to maintain
class Add
{
int a,b,sum;
int sum()
{
a=10; b=20;
return sum= a+b;
}
}

Lecturer: Syed Khutubuddin Ahmed

class MainAdd
{
public static void main(String args[])
{
Add obj= new Add();
System.out.println(sum =+ obj.sum());
}
}

SEM-III

KNS INSTITUTE OF TECHNLOGY

2.1.2 Declaring a class:

JAVA CH-2

DEPARTMENT OF MCA

// This class declares an object of type Box.


class BoxDemo {
public static void main(String args[]) {
Box mybox = new Box();
double vol;
// assign values to mybox's instance variables
mybox.width = 10;
mybox.height = 20;
mybox.depth = 15;
// compute volume of box
vol = mybox.width * mybox.height * mybox.depth;
System.out.println("Volume is " + vol);
}
}

Class Box
{
Double width;
Double height;
Double depth;
}

2.1.3 Declaring Objects:


Box mybox = new Box();
OR

1) Box mybox; // declare reference to object


2) mybox = new Box(); // allocate a Box object

Obtaining objects of a class is a two-step process.


1) First, you must declare a variable of the class type.

This variable does not define an object.

Instead, it is simply a variable that can refer to an object.

2) Second, you must acquire an actual, physical copy of the object and assign it to that variable.

You can do this using the new operator.

The new operator dynamically allocates (that is, allocates at run time) memory for an
object and returns a reference to it

Statement:

Effect
null

Box myBox
myBox
Width
mybox = new Box();
myBox

Height
Depth

Lecturer: Syed Khutubuddin Ahmed

SEM-III

KNS INSTITUTE OF TECHNLOGY

JAVA CH-2

DEPARTMENT OF MCA

o The first line declares mybox as a reference to an object of type Box.


o After this line executes, mybox contains the value null, which indicates that it does not
yet point to an actual object.
o Any attempt to use mybox at this point will result in a compile-time error.
o The next line allocates an actual object and assigns a reference to it to mybox.
o After the second line executes, you can use mybox as if it were a Box object.
o But in reality, mybox simply holds the memory address of the actual Box object.
o Those readers familiar with C/C++ have probably noticed that object references appear to
be similar to pointers.
o This suspicion is, essentially, correct. An object reference is similar to a memory pointer.
o The main differenceand the key to Javas safetyis that you cannot manipulate
references as you can actual pointers.
o Thus, you cannot cause an object reference to point to an arbitrary memory location or
manipulate it like an integer.
Assigning Object Reference Variables
Object reference variables act differently than you might expect when an assignment takes place.
For example, what do you think the following fragment does?
Box b1 = new Box();
Box b2 = b1;
Width
b1

Height
Depth

b2
You might think that b1 and b2 refer to separate and distinct objects.
However, this would be wrong. Instead, after this fragment executes, b1 and b2 will both refer
to the same object.
Although b1 and b2 both refer to the same object, they are not linked in any other way.
For example, a subsequent assignment to b1 will simply unhook b1 from the original object without
affecting the object or affecting b2. For example:
Box b1 = new Box();
Box b2 = b1;
// ...
b1 = null;
Here, b1 has been set to null, but b2 still points to the original object.

Lecturer: Syed Khutubuddin Ahmed

SEM-III

KNS INSTITUTE OF TECHNLOGY

JAVA CH-2

DEPARTMENT OF MCA

o When you assign one object reference variable to another object reference variable, you
are not creating any copy of the object, actually you are only making a copy of the
reference.

2.1.4 Introduction to methods:


This is the general form of a method:
type name(parameter-list)
{
// body of method
}

2.1.5 Returning a Value


int sum()
{
return a+b
}
There are two important things to understand about returning values:
The type of data returned by a method must be compatible with the return type specified by the
method. For example, if the return type of some method is boolean, you could not return an integer.
The variable receiving the value returned by a method (such as vol, in this case) must also be
compatible with the return type specified for the method.

2.2 Constructor: Default Constructor


o Java allows objects to initialize themselves when they are created. This automatic
initialization is performed through the use of a constructor.
o Constructor is automatically called immediately after the object is created, before the new
operator completes.
o Implicit return type of a class' constructor is the class type itself. It is the constructor's job to
initialize the internal state of an object

Lecturer: Syed Khutubuddin Ahmed