Search This Blog

Tuesday, 27 September 2016

Different ways of creating an Object in Java

Here are the 5 different ways to create object in Java,
1. new Operator
2. Using Class.forName("class").newInstance()
3.Using de serialization  (by using ObjectInputstream readObject method)
4.using clone method
5.using newInstance method.

package com.test.objectcreation;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

public class Add implements Cloneable {
    public int number = 1;

    public int add(int a, int b) {
        return a + b;
    }

    public int change() {
        number = 2;
        return number;
    }

    public static void main(String args[]) throws InstantiationException, IllegalAccessException,
            CloneNotSupportedException, ClassNotFoundException, IOException {
        Add add = new Add(); // creation of object with new operator
        System.out.println(add.add(2, 3));

        Add a = Add.class.newInstance();// creation of object with newInstance
                                        // method
        // System.out.println(a.getName());
        // System.out.println(a.getMethod("add", "2","3"));
        System.out.println(a.add(2, 3));
        a.change();
        Add b = (Add) a.clone(); // creation of object using clone, Class needs to implement clonenable, otherwise you  will get clonenotsupportedException and you need to typecast to class to which you need to clone.
        System.out.println(b.add(2, 3));
        System.out.println(b.toString());
        System.out.println("static int in object a :" + a.number);
        System.out.println(a.toString());
        System.out.println("static int in object b (cloned object) :" + b.number);
        FileInputStream fileIn = new FileInputStream("/E/Add.txt");
        ObjectInputStream in = new ObjectInputStream(fileIn);// here reading serializable object which stored in add.txt file, we are creating Add  classinstance,used mostly for deserialization.

        Add e = (Add) in.readObject();// reading object and type casting.
        in.close();
        fileIn.close();

        Class s = Class.forName("com.test.objectcreation.Add");// using forName
        Add obj = (Add) s.newInstance(); // we are creating object from Object s
        System.out.println(obj.hashCode());
    }

}

No comments:

Post a Comment