美文网首页Javajava WebJava服务端面试
Java中创建对象的四种方式

Java中创建对象的四种方式

作者: 勿念及时雨 | 来源:发表于2019-08-23 00:40 被阅读0次

使用new关键字创建对象

使用new关键字创建对象是最常见的一种方式,但是使用new创建对象会增加耦合度。在开发中应该尽量减少new的使用以降低耦合度。

Object o=new SubObject();
o.sayHello();

使用反射机制创建对象

使用Class对象的newInstance方法,我们很容易就能够创建出一个类的对象。

Class clz= Class.forName("com.wunian.object");
SubObject subObject =(SubObject ) clz.newInstance();
subObject.sayHello();

另外,我们也可以使用Constructor类的newInstance方法来创建对象。

Class clz= Class.forName("com.wunian.object");
Constructor constructor = clz.getConstructor();
SubObject subObject =(SubObject) constructor.newInstance();

使用clone创建对象

clone对象时,需要已经有一个分配了内存的源对象,创建新对象时,首先应该分配一个和源对象一样大的内存空间。要调用clone方法需要实现Cloneable接口。

package com.wunian.object;

public class SubObject implements Cloneable{
    public void sayHello(){
        System.out.println("Hello world!");
    }

    public static void main(String[] args){
        SubObject s= new SubObject();
        try{
            SubObject s2 = (SubObject)s.clone();
            s2.sayHello();
        }catch (CloneNotSupportedException e){
            e.printStackTrace();
        }
    }
}

使用反序列化创建对象

使用序列化时,要实现Serializable接口,将一个对象序列化到磁盘上,而采用反序列化可以将磁盘上的对象信息转化到内存中。

//实现Serializable序列化接口的类
package com.wunian.object;
import java.io.*;

public class SubObject implements Serializable{
   
    public void sayHello(){
        System.out.println("Hello world!");
    }
}

//测试类
package com.wunian.test;
import java.io.*;

public class TestMain{

    public static void main(String[] args){
        SubObject s= new SubObject();
        //准备一个文件用于存储该对象的信息
        File f = new File("SubObject.txt");

        try(FileOutputStream fos = new FileOutputStream(f);
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            FileInputStream fis = new FileInputStream(f);
            ObjectInputStream ois = new ObjectInputStream(fis)
            ){
            //序列化对象,写入到磁盘中
            oos.writeObject(s);
            //反序列化对象
            SubObject s2= (SubObject)ois.readObject();
            //测试方法
            s2.sayHello();
        }catch (FileNotFoundException e){
            e.printStackTrace();
        }catch (IOException e){
            e.printStackTrace();
        }catch (ClassNotFoundException e){
            e.printStackTrace();
        }
    }
}

相关文章

  • 16、Java创建对象有几种方式?

    Java创建对象有几种方式? java中提供了以下四种创建对象的方式: 1、new创建新对象; 2、通过反射机制;...

  • Java对象

    [toc] HotSpot中的对象 对象的创建 Java对象创建大致有如下四种方式: new关键字这应该是我们最常...

  • Java创建对象的方式

    原先了解的Java创建对象有四种方式: (1)用new 语句创建对象,这是最常用的创建对象方法。 (2)运用反射手...

  • Java中创建对象的四种方式

    1.new来创建 2.运用反射,调用java.lang.reflect.Constructor类的newInsta...

  • Java中创建对象的四种方式

    使用new关键字创建对象 使用new关键字创建对象是最常见的一种方式,但是使用new创建对象会增加耦合度。在开发中...

  • Java四种创建对象方式

    1,创建的new关键字创建对象 new HelloWorld(); 2,使用newInstance()方法 例如:...

  • String类

    String对象创建的四种方式 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使...

  • JAVA创建对象的四种方式

    1.直接new (无需多言) 2.使用反射机制创建 /** * * @author eastw * * 待...

  • 类的初始化与实例化

    JAVA创建对象的四种方法 通过关键字new 通过Java反射 通过clone方法 通过序列化方式 通过new关键...

  • Java中创建对象的方式

    从面相过程到面相对象的转变,是由一句“万物皆对象”开始的。那么所说的这个对象是如何产生的?下面,我们就来看看,在J...

网友评论

    本文标题:Java中创建对象的四种方式

    本文链接:https://www.haomeiwen.com/subject/blpasctx.html