[go: up one dir, main page]

0% found this document useful (0 votes)
34 views17 pages

Session 3 Notes

Uploaded by

tabbu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views17 pages

Session 3 Notes

Uploaded by

tabbu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Constructors, Overloading and

Static Members

1
Constructors
 Java allows objects to initialize themselves when
they are created through the use of a constructor.

 Constructors play the role of initializing objects

 Constructors are a special kind of methods that are


invoked using the new operator when an object is
created.
Constructors, cont.

 Constructors have following properties:

 Constructors must have the same name as the class itself.

 Constructors do not have a return type— not even void.

 The implicit return type is class itself

 A constructor with no parameters is referred to as a


default constructor and constructor with parameters is
called as parameterized constructor

3
Program for constructor
class Box { class BoxDemo1 {
double width; public static void main(String args[]) {
double height; // declare, allocate, and initialize Box objects
double depth;
// This is the constructor for Box. Box mybox1 = new Box(); //constructor invoked
Box() { Box mybox2 = new Box(); //constructor invoked
System.out.println("Constructing Box");
width = 10; double vol;
height = 10; // get volume of first box
depth = 10; vol = mybox1.volume();
} System.out.println("Volume is " + vol);
// compute and return volume
double volume() { // get volume of second box
return width * height * depth; vol = mybox2.volume();
} System.out.println("Volume is " + vol);
} }
}

4
Parameterized Constructors
class Box { class BoxDemo2 {
double width; public static void main(String args[]) {
double height; // declare, allocate, and initialize Box objects
double depth;
// This is the constructor for Box. Box mybox1 = new Box(10, 20, 15);
Box(double w, double h, double d) { Box mybox2 = new Box(3, 6, 9);
width = w;
height = h; double vol;
depth = d;
} // get volume of first box
// compute and return volume vol = mybox1.volume();
double volume() { System.out.println("Volume is " + vol);
return width * height * depth;
} // get volume of second box
} vol = mybox2.volume();
System.out.println("Volume is " + vol);
}
}
5
Exercise

 WAP to create class rectangle and calculate


area and perimeter of it by using constructor.
 WAP to create class Employee. Add methods
to read and display employee information by
using constructor such as id and salary.

6
Method Overloading
 Two or more methods within the same class that have the
same name but methods must differ in the type and/or
number of their parameters.

 Method overloading is one of the ways that Java implements


polymorphism

 When an overloaded method is invoked, Java uses the type


and/or number of arguments to determine which version of
the overloaded method to actually call.

7
Example
class OverloadDemo { class Overload {
void test() public static void main(String args[])
{ {
System.out.println("No parameters");
} OverloadDemo ob = new OverloadDemo();
void test(int a) double result;
{ // call all versions of test()
System.out.println("a: " + a); ob.test();
} ob.test(10);
void test(int a, int b) ob.test(10, 20);
{ result = ob.test(123.2);
System.out.println("a and b: " + a + " " + b); System.out.println("Result of ob.test(123.2): " + result);
} }
double test(double a) }
{
System.out.println("double a: " + a);
return a*a;
}
} 8
Constructor Overloading
 Similar to method overloading we can also overload
constructor .

 Overloaded constructors have the same name but must differ


in the type and/or number of their parameters.

9
Example
class Box {
class OverloadCons {
double width;
public static void main(String args[]) {
double height;
// create boxes using the various constructors
double depth;
Box mybox1 = new Box(10, 20, 15);
// constructor used when all dimensions specified
Box mybox2 = new Box();
Box(double w, double h, double d) {
Box mycube = new Box(7);
width = w;
double vol;
height = h;
// get volume of first box
depth = d;
vol = mybox1.volume();
}
System.out.println("Volume of mybox1 is " + vol);
// constructor used when no dimensions specified
// get volume of second box
Box() {
vol = mybox2.volume();
width = -1; // use -1 to indicate
System.out.println("Volume of mybox2 is " + vol);
height = -1; // an uninitialized
// get volume of cube
depth = -1; // box
vol = mycube.volume();
}
System.out.println("Volume of mycube is " + vol);
// constructor used when cube is created
}
Box(double len) {
}
width = height = depth = len;
}
// compute and return volume
double volume() {
return width * height * depth;
} 10
Exercise

 WAP to overload add method to perform


addition of two integers, addition of three
integers and addition of two float numbers.
 WAP to create overloaded constructor to
calculate area of triangle ,rectangle and circle.

11
Using Objects as Parameters
class Test {
int a, b; class PassOb
Test(int i, int j) { {
a = i; public static void main(String args[])
b = j; {
} Test ob1 = new Test(100, 22);
void add(Test o) { Test ob2 = new Test(100, 22);
if(o.a == a && o.b == b) Test ob3 = new Test(-1, -1);
System.out.println(" Equal”);
ob1.equals(ob2));
else
System.out.println(" Not Equal”); ob1.equals(ob3));
} }
} }

12
Returning Object
class Test { class RetOb {
int a ,b; public static void main(String args[]) {
Test() { Test ob1 = new Test(2 ,4);
a = 0;
b=0; Test ob2;
} ob2 = ob1.add();
Test(int i ,int j) { System.out.println("ob1.a: " + ob1.a);
a = i; System.out.println("ob1.b: " + ob1.b);
b=j;
} System.out.println("After Addition :");
Test add()
{ System.out.println("ob2.a: " + ob2.a);
Test temp = new Test(); System.out.println("ob2.b: " + ob2.b);
temp.a=a+10; }
temp.b=b+10; }
return temp;
}} 13
static Members
 Normally a class member must be accessed only with an
object.
 When a member is declared static, it can be accessed before
any objects of its class are created, and without reference to
any object.
 There can be a static method, static variable and a static block
 When objects of class are declared, no copy of a static
variable is made.
 Instead, all instances of the class share the same static
variable.
 Static methods can only call other static methods
 Static methods must only access static data
 Static block gets executed exactly once, when the class is first
loaded.
14
class UseStatic {
static int a = 3;
static int b;
static void meth(int x) { OUTPUT
System.out.println("x = " + x);
System.out.println("a = " + a);
Static block initialized.
System.out.println("b = " + b); x = 42
}
static { a=3
System.out.println("Static block b = 12
initialized.");
b = a * 4;
}
public static void main(String args[]) {
meth(42);
}}
15
 Outside of the class in which they are defined, static methods and
variables can be used independently of any object.

 To call a static method and variable from outside its class, class name is
used .

General form:
classname.method( );
Classname.variable1;

16
class StaticDemo {
static int a = 42;  output :
static int b = 99; a = 42
static void callme() {
System.out.println("a = " + a); b = 99
}
}
class StaticByName {
public static void main(String args[]) {
StaticDemo.callme();
System.out.println("b = " + StaticDemo.b);
}
}

17

You might also like