java对象的初始化有哪些方法?

TheDisguiser 2020-09-10 22:36:06 java常见问答 5019

对象是java最基本的一个概念,对于对象的初始化小伙伴们了解吗?本篇文章就一起来看看。

对象初始化

 //待实例化的类
 public class Worker implements Cloneable, Serializable
 {
     private static final long serialVersionUID = 1 L;
     private String name;
     private Integer age;
     public Worker()
     {
         this.name = "";
         this.age = 0;
     }
     public Worker(String name, Integer age)
     {
         this.name = name;
         this.age = age;
     }
     public void work()
     {
         System.out.println(name + "is working");
     }
     public Worker clone()
     {
         Worker worker = null;
         try
         {
             return (Worker) super.clone();
         }
         catch (CloneNotSupportedException e)
         {
             e.printStackTrace();
         }
         return worker;
     }
 }

方式一:

    public static Worker createWorker()
    {
        System.out.println("直接使用new的方式,不使用参数");
        return new Worker();
    }

方式二:

     public static Worker createWorker1()
     {
         Class clazz = null;
         Worker worker = null;
         try
         {
             clazz = Class.forName("com.code.loader.Worker");
             worker = (Worker) clazz.newInstance();
         }
         catch (ClassNotFoundException e)
         {
             e.printStackTrace();
         }
         catch (InstantiationException e)
         {
             e.printStackTrace();
         }
         catch (IllegalAccessException e)
         {
             e.printStackTrace();
         }
         System.out.println("使用反射机制,不带参数的newInstance()方法");
         return worker;
     }

方式三:

public static Worker createWorker4(String name, Integer age)
{
    Worker person = new Worker();
    person.setName(name);
    person.setAge(age);
    //序列化
    OutputStream outputStream = new FileOutputStream("person.txt");
    ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
    objectOutputStream.writeObject(person);
    outputStream.close();
    objectOutputStream.close();
    //反序列化
    InputStream inputStream = new FileInputStream("person.txt");
    ObjectInputStream objectInputStream = new ObjectInputStream(inputStream);
    return (Worker) objectInputStream.readObject();
}

以上就是本篇文章的所有内容,更多详细java常见问题及解决方法可以关注我们网站了解具体。

推荐阅读:

java对象引用与指针对比,详细解析

java对象的显式创建方式代码实例

java对象的销毁详解