Object Creation

In how many ways we can create an object? Explain with example.

Questions by justjiten   answers by justjiten

Editorial / Best Answer

vishrutha  

  • Member Since Feb-2009 | Feb 13th, 2009


1. Using new keyword
This is the most common way to create an object in java. I read somewhere that almost 99% of objects are created in this way.

MyObject object = new MyObject();

2. Using Class.forName()
If we know the name of the class & if it has a public default constructor we can create an object in this way.

MyObject object = (MyObject) Class.forName("subin.rnd.MyObject").newInstance();

3. Using clone()
The clone() can be used to create a copy of an existing object.

MyObject anotherObject = new MyObject();
MyObject object = anotherObject.clone();

4. Using object deserialization
Object deserialization is nothing but creating an object from its serialized form.

ObjectInputStream inStream = new ObjectInputStream(anInputStream );
MyObject object = (MyObject) inStream.readObject();

5. Using class loader
one more is through creation of object using classloader like

this.getClass().getClassLoader().loadClass(”com.amar.myobject”).newInstance();

Now you know how to create an object. But its advised to create objects only when it is necessary to do so.

Showing Answers 1 - 33 of 33 Answers

vishrutha

  • Feb 13th, 2009
 

1. Using new keyword
This is the most common way to create an object in java. I read somewhere that almost 99% of objects are created in this way.

MyObject object = new MyObject();

2. Using Class.forName()
If we know the name of the class & if it has a public default constructor we can create an object in this way.

MyObject object = (MyObject) Class.forName("subin.rnd.MyObject").newInstance();

3. Using clone()
The clone() can be used to create a copy of an existing object.

MyObject anotherObject = new MyObject();
MyObject object = anotherObject.clone();

4. Using object deserialization
Object deserialization is nothing but creating an object from its serialized form.

ObjectInputStream inStream = new ObjectInputStream(anInputStream );
MyObject object = (MyObject) inStream.readObject();

5. Using class loader
one more is through creation of object using classloader
like


this.getClass().getClassLoader().loadClass(”com.amar.myobject”).newInstance();

Now you know how to create an object. But its advised to create objects only when it is necessary to do so.

Auxilius

  • Mar 22nd, 2009
 

I agree with the answer given by vishrutha with few modifications.

  • Part 2 and the last is very similar to each other.
  • Deserialization can not be called as way of object creation.
  • Clone is useful for normal objects but not for composite objects.
From the perspective of design patterns we have six ways of object creation by GoF. But that is all about design patterns. If you ever heard about singleton objects (one of the six), you should read GoF creational patterns.

vaseem35

  • Apr 20th, 2009
 

In only one way. That is using 'new' keyword. Without using 'new' we cannot
create object.


Example:
classname cn= new classname(); 


here classname is name of the your class.

Max

  • Sep 7th, 2011
 

All sorts of syntax sugar can also be named:

6. New String as a result of concatenation:

String varName = getClass().getName(); //to avoid compile-time optimization
String a = "Prefix" + varName;

7. Autoboxing:

Double d = 1.2345;

8. Variable arguments:
Arrays.asList("1", "2", "3"); //List is created using new, but String[] is created automatically

9. Array initialization
int[] a = {1, 2, 3};

  Was this answer useful?  Yes

sampra

  • Mar 13th, 2012
 

There are 5 ways:
1-> new operaotor
2-> Class.forName()
3-> Cloning
4-> Deserialization
5-> Class.newInstance()

  Was this answer useful?  Yes

Give your answer:

If you think the above answer is not correct, Please select a reason and add your answer below.

 

Related Answered Questions

 

Related Open Questions