美文网首页
day12 java创建对象的方法

day12 java创建对象的方法

作者: 老婆日向雏田 | 来源:发表于2019-04-17 12:17 被阅读0次

    一、使用new关键字

    User user = new User();

    二、使用反射机制

    • 使用Class类的newInstance方法创建对象
    //创建方法1
    User user = (User)Class.forName("根路径.User").newInstance(); 
    //创建方法2(用这个最好)
    User user = User.class.newInstance();
    
    • 使用Constructor类的newInstance方法
    Constructor<User> 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创建对象的方法

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