用Java创建对象的不同方法

用Java创建对象的类

创建对象五种不同的方法,下面将介绍创建对象的方法:

  1. 使用“新”关键字

  2. 使用Class的“ newInstance()”方法。

  3. 使用clone()方法

  4. 使用构造函数类的“ newInstance()”方法

  5. 使用反序列化

1)使用“新”关键字

  • new是在Java中引入的关键字。

  • 我们通常使用new关键字来创建对象。

  • 通过使用new关键字,我们可以调用要调用的任何构造函数。

示例

class CreateObjectByNew {
    //默认构造函数    CreateObjectByNew() {
        System.out.println("We are creating an object by using new keyword");
    }
}

class Main {
    public static void main(String[] args) {
        //创建一个CreateObjectByNew类的对象
        CreateObjectByNew cobn = new CreateObjectByNew();
    }
}

输出结果

E:\Programs>javac Main.java

E:\Programs>java Main
We are creating an object by using new keyword

2)使用Class的“ newInstance()”方法。

  • newInstance()方法在Class中可用。

  • 通过使用newInstance()Class方法,它可以调用无参数构造函数或默认构造函数。

  • 它创建该类的新实例。

示例

class NewInstanceMethodOfClass {
    //默认构造函数    NewInstanceMethodOfClass() {
        System.out.println("Object by using newInstance() method of Class");
    }
}

class Main {
    public static void main(String[] args) throws Exception {
        //创建一个Class类的对象,然后 
        //我们将类作为参数传递 
        //在forName()类的方法
        Class cl = Class.forName("NewInstanceMethodOfClass");

        //现在我们调用newInstance()Class的方法 
        //并返回我们创建的类的引用
        NewInstanceMethodOfClass nimoc = (NewInstanceMethodOfClass) cl.newInstance();
    }
}

输出结果

E:\Programs>javac Main.java

E:\Programs>java Main
Object by using newInstance() method of Class

3)使用clone()方法

  • 该方法在java.lang.Cloneable接口中可用。

  • 我们的类中有clone()Cloneable接口的重写方法。

  • 这是复制对象的最简单方法。

示例

class CreateObjectByClone implements Cloneable {
    String name;
    CreateObjectByClone(String name) {
        this.name = name;
    }

    public Object clone() throws CloneNotSupportedException {
        return super.clone();
    }

    public static void main(String[] args) throws Exception {
        CreateObjectByClone cobc1 = new CreateObjectByClone("Preeti");
        CreateObjectByClone cobc2 = (CreateObjectByClone) cobc1.clone();
        System.out.println("The values before clone() in cobc1" + " " + cobc1.name);
        System.out.println("The values after clone() in cobc2" + " " + cobc2.name);
    }
}

输出结果

E:\Programs>javac CreateObjectByClone.java

E:\Programs>java CreateObjectByClone
The values before clone() in cobc1 Preeti
The values after clone() in cobc2 Preeti