用Java设计一个类Person,有属性名称name和年龄age。在main方法中,使用这个类建立一个对象,保存到文件a.bat中,然后从a.bat中读取这个对象,并打印该对象。
时间: 2024-05-04 09:16:37 浏览: 49
浅析Java编程中类和对象的定义
好的,这是您的第一个问题。
以下是使用Java设计类Person的代码:
```
import java.io.*;
public class Person implements Serializable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
// 创建Person对象并保存到文件a.bat中
Person p1 = new Person("张三", 20);
try {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("a.bat"));
oos.writeObject(p1);
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
// 从文件a.bat中读取Person对象并打印
try {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("a.bat"));
Person p2 = (Person) ois.readObject();
System.out.println("姓名:" + p2.getName() + ",年龄:" + p2.getAge());
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
稍微解释一下这里的代码逻辑:
- 我们使用Java的Serializable接口来将Person类序列化,使其可以被保存到文件中。
- 在main方法中,我们创建了一个Person对象p1,并将其保存到a.bat文件中。这里我们使用了ObjectOutputStream类的writeObject方法将对象写入文件。
- 接着,我们又从a.bat文件中读取对象p2,并使用ObjectInputStream类将其反序列化,获取姓名和年龄信息,并打印出来。
这样就完成了您的需求,同时也符合Java中常见的序列化和反序列化的做法。希望以上回答对您有帮助。
阅读全文