10
Constructor Overlo ading tMyn 1 Constructor Overloading One context in which you will regularly need to use overloading is when you write constructors for your classes. Constructors are methods that can be overloaded, just like any other method in a class. In most situations, you will want to generate objects of a class from different sets of initial defining data:

Constructor Overloading

Embed Size (px)

DESCRIPTION

overloading of constructors

Citation preview

Page 1: Constructor Overloading

Constructor Overloading tMyn 1

Constructor Overloading

• One context in which you will regularly need to use overloading is when you write constructors for your classes.

• Constructors are methods that can be overloaded, just like any other method in a class.

• In most situations, you will want to generate objects of a class from different sets of initial defining data:

Page 2: Constructor Overloading

Constructor Overloading tMyn 2

package TimoSoft;

public class MyClass{ int x; MyClass() { System.out.println("Inside MyClass() constructor."); x=0; } MyClass(int i) { System.out.println("Inside MyClass(int) constructor."); x=i; }

Page 3: Constructor Overloading

Constructor Overloading tMyn 3

MyClass(double d) { System.out.println("Inside MyClass(double) constructor."); x=(int)d; } void getXvalue() { System.out.println("The value of the instance variable \nof the object " +this+" is "+x+"."); }}

Page 4: Constructor Overloading

Constructor Overloading tMyn 4

package TimoSoft;

public class MyClassTest{ public static void main(String[] args) { MyClass first=new MyClass(); MyClass second=new MyClass(52); MyClass third=new MyClass(13.6); first.getXvalue(); second.getXvalue(); third.getXvalue(); }}

Page 5: Constructor Overloading

Constructor Overloading tMyn 5

run:Inside MyClass() constructor.Inside MyClass(int) constructor.Inside MyClass(double) constructor.The value of the instance variable of the object TimoSoft.MyClass@19821f is 0.The value of the instance variable of the object TimoSoft.MyClass@addbf1 is 52.The value of the instance variable of the object TimoSoft.MyClass@42e816 is 13.BUILD SUCCESSFUL (total time: 1 second)

Page 6: Constructor Overloading

Constructor Overloading tMyn 6

• One common reason that constructors are overloaded is to allow one object to initialize another.

• The need to produce an identical copy of an object occurs often:

Page 7: Constructor Overloading

Constructor Overloading tMyn 7

package TimoSoft;

public class MyClass{ int x, y; MyClass() { System.out.println("Inside MyClass() constructor."); x=0; y=0; } MyClass(int i, int j) { System.out.println("Inside MyClass(int) constructor."); x=i; y=j; }

Page 8: Constructor Overloading

Constructor Overloading tMyn 8

MyClass(MyClass obj) { System.out.println("Inside MyClass(MyClass) constructor."); x=obj.x; y=obj.y; } void getXYvalues() { System.out.println("The value of the instance variables \nof the object " +this+" are "+x+" and "+y+"."); }}

Page 9: Constructor Overloading

Constructor Overloading tMyn 9

package TimoSoft;

public class MyClassTest{ public static void main(String[] args) { MyClass first=new MyClass(); MyClass second=new MyClass(52, 18); MyClass third=new MyClass(second); first.getXYvalues(); second.getXYvalues(); third.getXYvalues(); }}

Page 10: Constructor Overloading

Constructor Overloading tMyn 10

run:Inside MyClass() constructor.Inside MyClass(int) constructor.Inside MyClass(MyClass) constructor.The value of the instance variables of the object TimoSoft.MyClass@19821f are 0 and 0.The value of the instance variables of the object TimoSoft.MyClass@addbf1 are 52 and 18.The value of the instance variables of the object TimoSoft.MyClass@42e816 are 52 and 18.BUILD SUCCESSFUL (total time: 1 second)