在Java中创建对象的方法

时间:2012-05-28 07:52:37

标签: java

  

可能重复:
  What are all the different ways to create an object in Java?

我在某个地方遇到过这样的声明,我们可以用4种方式在Java中创建对象。 我熟悉两个。

  1. 使用新关键字
  2. 使用newInstance()方法
  3. 另外两个是什么?

3 个答案:

答案 0 :(得分:2)

根据here,您可以按如下方式创建Java对象:

  
      
  • 使用new关键字这是在java中创建对象的最常用方法。我在某处读到了几乎99%的对象都是在其中创建的   这样。
  •   
     

MyObject object = new MyObject();

     
      
  • 使用Class.forName()如果我们知道类的名称&如果它有一个公共默认构造函数,我们可以用这种方式创建一个对象。
  •   
     

MyObject object =(MyObject)   的Class.forName( “subin.rnd.MyObject”)的newInstance();

     
      
  • 使用clone()clone()可用于创建现有对象的副本。
  •   
     

MyObject anotherObject = new MyObject(); MyObject对象=   anotherObject.clone();

     
      
  • 使用对象反序列化对象反序列化只不过是从序列化形式创建对象。
  •   
     

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

答案 1 :(得分:1)

使用反射,可以调用instance.forName(String className)。还有instance.clone(),这是否是真正的初始化是有争议的。

阅读完主题后,似乎只有3种方法来初始化一个对象:

  

Java语言有三种专用于确保正确的机制   对象的初始化:实例初始化器(也称为实例)   初始化块),实例变量初始化器和   构造函数。 (实例初始值设定项和实例变量   初始化者统称为“初始化者”。)三者   机制导致Java代码在执行时自动执行   对象已创建。使用时为新对象分配内存时   new运算符或类Class的newInstance()方法,Java   虚拟机将确保在您之前运行初始化代码   可以使用新分配的内存。如果你设计你的课程   初始化器和构造器始终生成有效状态   新创建的对象,任何人都无法创建和   使用未正确初始化的对象。

<强>参考:

答案 2 :(得分:0)

有两个newInstance s:

  • Constructor的反射:java.lang.reflect.Constructor.newInstance(Object ...)
  • with Class:java.lang.Class.newInstance()