编写多构造器的学生管理程序,要求:将学生、班级等抽象为类,分配各个类的职责,完成各种功能。 创建Student类和ClassInfo类, 该两个类均包含多个构造方法;在StudentManager类的main方法中创建上面两个类的对象,输出学生的相关信息。用java
时间: 2024-10-13 10:14:40 浏览: 31
编写一个多构造函数的学生管理程序,首先我们需要创建三个类:`Student`, `ClassInfo`, 和 `StudentManager`。每个类都有其特定的职责。
**1. Student 类**:
```java
public class Student {
private String name;
private int id;
private ClassInfo classInfo;
// 默认构造方法
public Student() {}
// 提供多种构造方法以设置姓名和ID
public Student(String name, int id) {
this.name = name;
this.id = id;
}
public Student(String name, int id, ClassInfo classInfo) {
this.name = name;
this.id = id;
this.classInfo = classInfo;
}
// getters and setters
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public ClassInfo getClassInfo() { return classInfo; }
public void setClassInfo(ClassInfo classInfo) { this.classInfo = classInfo; }
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", id=" + id +
", classInfo=" + classInfo +
'}';
}
}
```
**2. ClassInfo 类**:
```java
public class ClassInfo {
private String className;
private List<Student> students;
// 默认构造方法
public ClassInfo() {}
// 构造方法,可以接受课程名称
public ClassInfo(String className) {
this.className = className;
this.students = new ArrayList<>();
}
// 添加学生到班级
public void addStudent(Student student) {
students.add(student);
}
// 获取班级名称
public String getClassName() { return className; }
// 获取所有学生
public List<Student> getStudents() { return students; }
@Override
public String toString() {
return "ClassInfo{" +
"className='" + className + '\'' +
", students=" + students +
'}';
}
}
```
**3. StudentManager 类 (main 方法)**:
```java
import java.util.Scanner;
public class StudentManager {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 创建默认类信息
ClassInfo generalClass = new ClassInfo("General");
// 创建第一个学生并添加到班级
System.out.println("Enter student details:");
System.out.print("Name: ");
String name1 = scanner.nextLine();
System.out.print("ID: ");
int id1 = scanner.nextInt();
Student student1 = new Student(name1, id1);
generalClass.addStudent(student1);
// 使用多参数构造函数创建第二个学生
System.out.println("\nEnter another student details:");
System.out.print("Name: ");
String name2 = scanner.nextLine();
System.out.print("ID: ");
int id2 = scanner.nextInt();
System.out.print("Class: ");
String className2 = scanner.nextLine();
Student student2 = new Student(name2, id2, new ClassInfo(className2));
// 输出学生信息
System.out.println(student1);
System.out.println(student2);
System.out.println(generalClass);
scanner.close();
}
}
```
当你运行 `StudentManager` 的 `main` 方法时,它会提示用户输入学生的信息,并展示学生及其所属班级的相关信息。
阅读全文