📅  最后修改于: 2023-12-03 15:01:31.466000             🧑  作者: Mango
在Java中,对象是指通过类定义的实体。一个类可以有许多个对象,每个对象都具有相同的属性和方法,但它们的属性值可能不同。本文将介绍Java中创建对象的几种方式。
使用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();
使用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();
将对象序列化后,可以使用反序列化来创建一个与序列化前完全相同的对象。需要在类中实现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中创建对象的三种方法,可以根据具体情况选择使用哪种方法创建对象。