Java 同一个类如何建多个 class

在 Java 中,我们可以在同一个文件中定义多个类。这种方式可以方便地组织代码,使得代码更加模块化和可读性更强。本文将介绍如何在同一个类中建立多个 class,并提供一个具体的示例,以解决一个实际问题。

问题描述

假设我们需要开发一个简单的学生管理系统,其中包含以下几个类:

  1. Student 类:表示学生对象,包含学生的姓名、年龄、性别等属性。
  2. Course 类:表示课程对象,包含课程的名称、学分等属性。
  3. Teacher 类:表示教师对象,包含教师的姓名、工号等属性。
  4. Class 类:表示班级对象,包含班级的名称、学生列表等属性。

我们希望能够在同一个文件中定义这四个类,并且能够通过调用不同的方法来实现对学生、课程、教师和班级的管理和操作。

解决方案

  1. 创建一个 Java 文件,文件名可以是任意的,比如 StudentManagement.java

  2. 在该文件中定义一个公共类 StudentManagement,用于管理学生、课程、教师和班级。

public class StudentManagement {
    // 构造方法和其他方法省略
}
  1. StudentManagement 类中分别定义 StudentCourseTeacherClass 四个类。
public class StudentManagement {
    // 学生类
    class Student {
        // 学生类的属性和方法
    }
    
    // 课程类
    class Course {
        // 课程类的属性和方法
    }
    
    // 教师类
    class Teacher {
        // 教师类的属性和方法
    }
    
    // 班级类
    class Class {
        // 班级类的属性和方法
    }
    
    // 构造方法和其他方法省略
}
  1. StudentManagement 类中定义相应的方法来进行学生、课程、教师和班级的管理和操作。
public class StudentManagement {
    // 学生类
    class Student {
        // 学生类的属性和方法
    }
    
    // 课程类
    class Course {
        // 课程类的属性和方法
    }
    
    // 教师类
    class Teacher {
        // 教师类的属性和方法
    }
    
    // 班级类
    class Class {
        // 班级类的属性和方法
    }
    
    // 添加学生
    public void addStudent(Student student) {
        // 添加学生的逻辑
    }
    
    // 删除学生
    public void removeStudent(Student student) {
        // 删除学生的逻辑
    }
    
    // 选课
    public void selectCourse(Student student, Course course) {
        // 选课的逻辑
    }
    
    // 退课
    public void dropCourse(Student student, Course course) {
        // 退课的逻辑
    }
    
    // 指定教师
    public void assignTeacher(Class class, Teacher teacher) {
        // 指定教师的逻辑
    }
    
    // 构造方法和其他方法省略
}

示例代码

下面是一个简化的示例代码,演示了如何使用 StudentManagement 类实现学生、课程、教师和班级的管理和操作。

public class StudentManagement {
    // 学生类
    class Student {
        private String name;
        private int age;
        private String gender;
        
        public Student(String name, int age, String gender) {
            this.name = name;
            this.age = age;
            this.gender = gender;
        }
        
        // Getter 和 Setter 方法省略
    }
    
    // 课程类
    class Course {
        private String name;
        private int credit;
        
        public Course(String name, int credit) {
            this.name = name;
            this.credit = credit;
        }
        
        // Getter 和 Setter 方法省略
    }
    
    // 教师类
    class Teacher {
        private String name;
        private String id;
        
        public Teacher(String name, String id) {
            this.name = name;
            this.id = id;