zoukankan      html  css  js  c++  java
  • Java 创建对象的几种方式

    Java 创建对象的几种方式

    • 使用new关键字

      Student student = new Student();
      
    • Class 类的 newInstance() 方法

      ​ 我们也可以使用 Class 类的 newInstance() 方法创建对象,如:

      Student student2 = (Student)Class.forName(className全类名).newInstance();
      // 或者:
      Student stu = Student.class.newInstance();
      
    • Constructor 类的 newInstance() 方法
      该方式和 Class 类的 newInstance() 方法很像。java.lang.relect.Constructor 类里也有一个newInstance方法可以创建对象。我们可以通过这个 newInstance() 方法调用有参数的和私有的构造函数。

      Constructor 类 -- > 声明构造函数的类

      Constructor<Student> constructor = Student.class.getConstructor();
      Student stu = constructor.newInstance();
      
    • Clone()
      无论何时我们调用一个对象的 clone() 方法,JVM 都会创建一个新的对象,同时将前面的对象的内容全部拷贝进去。事实上,用 clone() 方法创建对象并不会调用任何构造函数。需要注意的是,要使用 clone 方法,我们必须先实现 Cloneable 接口并实现其定义的 clone() 方法。

      Student stu2 = <Student>stu.clone();
      
    • 反序列化
      Java 中常常进行 JSON 数据跟 Java 对象之间的转换,即序列化和反序列化。
      当我们序列化和反序列化一个对象,JVM 会给我们创建一个单独的对象,在反序列化时,JVM 创建对象并不会调用任何构造函数。为了反序列化一个对象,我们需要让我们的类实现 Serializable 接口,虽然该接口没有任何方法。

      ObjectInputStream in = new ObjectInputStream (new FileInputStream("data.obj")); 
      Student stu3 = (Student)in.readObject();
      
  • 相关阅读:
    Python--my first try!
    AB PLC首次IP地址如何分配
    如何解压DMK固件
    罗克韦尔自动化官网如何下载设备固件
    如何使用AB PLC仿真软件Studio 5000 Logix Emulate
    Studio 5000指令IN_OUT管脚实现西门子风格
    AB PLC分类
    罗克韦尔自动化发展简史
    C#曲线分析平台的制作(五,Sqldependency+Signalr+windows 服务 学习资料总结)
    自动化监控上位机系统二次开发之我见
  • 原文地址:https://www.cnblogs.com/hellojava404/p/13174537.html
Copyright © 2011-2022 走看看