如何创建对象

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在 Java 中,创建对象是面向对象编程(OOP)的一个基本概念,它使我们能够使用类的蓝图。对象代表现实生活中的实体,并具有类似现实实体的属性。在这个实验中,我们将学习如何创建一个类的对象。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/class_attributes("Class Attributes") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/class_methods("Class Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/constructors("Constructors") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/reflect("Reflect") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/serialization("Serialization") java/FileandIOManagementGroup -.-> java/io("IO") java/SystemandDataProcessingGroup -.-> java/object_methods("Object Methods") subgraph Lab Skills java/classes_objects -.-> lab-117433{{"如何创建对象"}} java/class_attributes -.-> lab-117433{{"如何创建对象"}} java/class_methods -.-> lab-117433{{"如何创建对象"}} java/constructors -.-> lab-117433{{"如何创建对象"}} java/exceptions -.-> lab-117433{{"如何创建对象"}} java/reflect -.-> lab-117433{{"如何创建对象"}} java/serialization -.-> lab-117433{{"如何创建对象"}} java/io -.-> lab-117433{{"如何创建对象"}} java/object_methods -.-> lab-117433{{"如何创建对象"}} end

创建一个类

第一步是创建一个类,用于表示具有属性的实体。例如,我们创建一个名为 Car 的类,用于表示汽车的实体,并包含颜色、品牌名称和燃料类型等属性。

public class Car {
    private String carColor;
    private String brand;
    private String fuelType;

    public void start() {
        //code to start the car
    }

    public void stop() {
        //code to stop the car
    }
}

使用 new 关键字创建对象

在 Java 中,使用 new 关键字和构造函数来创建对象。在以下示例中,我们使用 new 关键字创建了一个名为 myCar 的对象,并通过 myCar 对象调用了 start()stop() 方法。

public class Main {
    public static void main(String[] args) {
        //使用 new 关键字创建对象
        Car myCar = new Car();

        //通过对象调用方法
        myCar.start();
        myCar.stop();
    }
}
运行代码

要运行代码,请在终端中执行以下命令:

javac Main.java && java Main

使用 newInstance() 方法创建对象

也可以通过 Class 类的 newInstance() 方法创建对象。在以下示例中,我们使用 newInstance() 方法创建了一个名为 newStudentStudent 类的对象。

class Student {
    private String name;
    private int id;
}

public class Main {
    public static void main(String[] args) throws Exception {
        //使用 newInstance() 方法创建对象
        Student newStudent = Student.class.newInstance();

        //为对象赋值
        newStudent.name = "John";
        newStudent.id = 123;
    }
}
运行代码

要运行代码,请在终端中执行以下命令:

javac Main.java && java Main

使用 clone() 方法创建对象

如果类的至少一个对象已经创建,则可以使用 clone() 方法来创建对象。在以下示例中,我们使用 clone() 方法创建了一个名为 newStudentStudent 类的对象。

class Student implements Cloneable {
    private String name;
    private int id;

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}

public class Main {
    public static void main(String[] args) throws Exception {
        //创建一个对象
        Student student = new Student();
        student.name = "John";
        student.id = 123;

        //克隆对象
        Student newStudent = (Student) student.clone();
    }
}
运行代码

要运行代码,请在终端中执行以下命令:

javac Main.java && java Main

使用序列化和反序列化创建对象

使用序列化和反序列化创建对象是一种需要类实现可序列化接口的方式。在以下示例中,我们通过序列化和反序列化创建了一个名为 newStudentStudent 类的对象。

import java.io.Serializable;

class Student implements Serializable {
    private String name;
    private int id;
}

public class Main {
    public static void main(String[] args) throws Exception {
        //创建一个对象
        Student student = new Student();
        student.name = "John";
        student.id = 123;

        //对象的序列化
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("file.obj"));
        out.writeObject(student);
        out.close();

        //对象的反序列化
        ObjectInputStream in = new ObjectInputStream(new FileInputStream("file.obj"));
        Student newStudent = (Student) in.readObject();
        in.close();
    }
}
运行代码

要运行代码,请在终端中执行以下命令:

javac Main.java && java Main

总结

在 Java 中创建类的对象有以下几种方式:

  1. 创建一个包含属性的类。
  2. 使用 new 关键字和构造函数创建对象。
  3. 使用 Class 类的 newInstance() 方法创建对象。
  4. 如果类的至少一个对象已经创建,则可以使用对象的 clone() 方法创建对象。
  5. 使用序列化和反序列化创建对象。