day12 java创建对象的方法

一、使用new关键字

User user = new User();

二、使用反射机制

  • 使用Class类的newInstance方法创建对象
//创建方法1
User user = (User)Class.forName("根路径.User").newInstance(); 
//创建方法2(用这个最好)
User user = User.class.newInstance();
  • 使用Constructor类的newInstance方法
Constructor constructor = User.class.getConstructor();
User user = constructor.newInstance();

注:

  • 反射入口的方法:属性.class、对象.getclass

三、使用clone方法

  • 用clone方法创建对象并不会调用任何构造函数。
public class CloneTest implements Cloneable{
    private String name;  
    private int age; 

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public CloneTest(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }

    public static void main(String[] args) {
        try {
            CloneTest cloneTest = new CloneTest("wxy",18);
            CloneTest copyClone = (CloneTest) cloneTest.clone();
            System.out.println("newclone:"+cloneTest.getName());
            System.out.println("copyClone:"+copyClone.getName());
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
    }

}
  • 执行

newclone:wxy
copyClone:wxy

四、使用反序列化

  • 当我们序列化和反序列化一个对象,jvm会给我们创建一个单独的对象。在反序列化时,jvm创建对象并不会调用任何构造函数。
    为了反序列化一个对象,我们需要让我们的类实现Serializable接口。

注:该文章摘抄自https://blog.csdn.net/w410589502/article/details/56489294

本篇笔记出处@七夏港_f3ef

你可能感兴趣的:(day12 java创建对象的方法)