创建一学生类(包括姓名,年龄,班级,密码),创建若干该类的对象并保存在文件中(密码不保存),从文件读取对象后显示在屏幕上。Java源代码
时间: 2023-12-09 10:02:58 浏览: 58
建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数。声明一个学学生对象。然后调用成员函数在屏幕输出学生信息。
4星 · 用户满意度95%
好的,以下是 Java 源代码:
```
import java.io.*;
import java.util.*;
class Student implements Serializable {
private String name;
private int age;
private String className;
private transient String password;
public Student(String name, int age, String className, String password) {
this.name = name;
this.age = age;
this.className = className;
this.password = password;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getClassName() {
return className;
}
public String getPassword() {
return password;
}
public String toString() {
return "姓名:" + name + ",年龄:" + age + ",班级:" + className;
}
}
public class Main {
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
students.add(new Student("小明", 18, "一班", "123456"));
students.add(new Student("小红", 17, "二班", "654321"));
students.add(new Student("小刚", 16, "三班", "111111"));
try {
ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream("students.txt"));
outputStream.writeObject(students);
outputStream.close();
} catch(IOException e) {
e.printStackTrace();
}
try {
ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream("students.txt"));
List<Student> studentsFromFile = (List<Student>)inputStream.readObject();
inputStream.close();
for(Student student : studentsFromFile) {
System.out.println(student.toString());
}
} catch(IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
该程序创建了一个 `Student` 类,包括姓名、年龄、班级和密码等属性,使用 `Serializable` 接口实现了对象序列化。在程序中,创建了三个学生对象并保存在文件中,然后从文件中读取对象并打印在屏幕上。需要注意的是,密码属性使用 `transient` 关键字标记,因为密码不应该被保存在文件中。
阅读全文