📜  java make object - Java (1)

📅  最后修改于: 2023-12-03 15:01:31.466000             🧑  作者: Mango

Java中创建对象(Make Object)

在Java中,对象是指通过类定义的实体。一个类可以有许多个对象,每个对象都具有相同的属性和方法,但它们的属性值可能不同。本文将介绍Java中创建对象的几种方式。

1. 使用new关键字创建对象

使用new关键字在内存中分配空间并创建对象。使用构造函数初始化对象,然后通过变量名引用对象。

// 定义类
public class Person {
    String name;
    int age;
    String gender;

    // 构造函数
    public Person(String name, int age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    // 方法
    public void sayHello() {
        System.out.println("Hello, my name is " + name);
    }
}

// 创建对象
Person person = new Person("Amy", 20, "女性");

// 调用方法
person.sayHello();
2. 使用Class类的newInstance()方法创建对象

使用Class类的newInstance()方法创建对象,在类中必须包含默认构造函数。newInstance()方法将返回一个Object类型的对象,需要将其转换为类的实例。

// 定义类
public class Person {
    String name;
    int age;
    String gender;

    // 默认构造函数
    public Person() {}

    // 方法
    public void sayHello() {
        System.out.println("Hello, my name is " + name);
    }
}

// 创建对象
Person person = (Person)Class.forName("Person").newInstance();

// 设置属性值
person.name = "Amy";
person.age = 20;
person.gender = "女性";

// 调用方法
person.sayHello();
3. 使用反序列化创建对象

将对象序列化后,可以使用反序列化来创建一个与序列化前完全相同的对象。需要在类中实现Serializable接口。

// 序列化对象
Person person1 = new Person("Amy", 20, "女性");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.txt"));
oos.writeObject(person1);
oos.close();

// 反序列化对象
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.txt"));
Person person2 = (Person)ois.readObject();
ois.close();

// 调用方法
person2.sayHello();

以上是Java中创建对象的三种方法,可以根据具体情况选择使用哪种方法创建对象。