一、学生

Java 学生类是一个常用的对象类,封装了学生的信息,包括姓名、年龄、性别等属性。因为学生类涉及到对象和属性的封装,因此使用面向对象的思想来进行设计。

1、属性字段

public class Student {
    private String name; // 姓名
    private int age; // 年龄
    private char gender; // 性别
    private String id; // 学号
    private String major; // 专业
}

2、构造函数

public class Student {
    // 构造函数1:不带参数
    public Student() {}
    // 构造函数2:带参数
    public Student(String name, int age, char gender, String id, String major) {
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.id = id;
        this.major = major;
    }
}

3、获取属性方法

public class Student {
    // 获取姓名
    public String getName() {
        return name;
    }
    // 获取年龄
    public int getAge() {
        return age;
    }
    // 获取性别
    public char getGender() {
        return gender;
    }
    // 获取学号
    public String getId() {
        return id;
    }
    // 获取专业
    public String getMajor() {
        return major;
    }
}

二、教师

Java 教师类也是一个常用的对象类,封装了教师的信息,包括姓名、年龄、性别、工号、所教科目等属性。同样是因为教师类涉及到属性的封装,因此同样可以使用面向对象思想进行设计。

1、属性字段

public class Teacher {
    private String name; // 姓名
    private int age; // 年龄
    private char gender; // 性别
    private String id; // 工号
    private String subject; // 教授科目
}

2、构造函数

public class Teacher {
    // 构造函数1:不带参数
    public Teacher() {}
    // 构造函数2:带参数
    public Teacher(String name, int age, char gender, String id, String subject) {
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.id = id;
        this.subject = subject;
    }
}

3、获取属性方法

public class Teacher {
    // 获取姓名
    public String getName() {
        return name;
    }
    // 获取年龄
    public int getAge() {
        return age;
    }
    // 获取性别
    public char getGender() {
        return gender;
    }
    // 获取工号
    public String getId() {
        return id;
    }
    // 获取教授科目
    public String getSubject() {
        return subject;
    }
}

三、学生类与教师类的继承关系

学生类和教师类都涉及到人员信息的封装,因此在面向对象的设计中可以使用继承关系来进行封装。

1、父类 Person

public class Person {
    protected String name; // 姓名
    protected int age; // 年龄
    protected char gender; // 性别
    
    // 构造函数1:不带参数
    public Person() {}
    // 构造函数2:带参数
    public Person(String name, int age, char gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }
    
    // 获取姓名
    public String getName() {
        return name;
    }
    // 获取年龄
    public int getAge() {
        return age;
    }
    // 获取性别
    public char getGender() {
        return gender;
    }
}

2、学生类 Student 继承自 Person 父类

public class Student extends Person {
    private String id; // 学号
    private String major; // 专业

    // 构造函数1:不带参数
    public Student() {}
    // 构造函数2:带参数
    public Student(String name, int age, char gender, String id, String major) {
        super(name, age, gender);
        this.id = id;
        this.major = major;
    }

    // 获取学号
    public String getId() {
        return id;
    }
    // 获取专业
    public String getMajor() {
        return major;
    }
}

3、教师类 Teacher 继承自 Person 父类

public class Teacher extends Person {
    private String id; // 工号
    private String subject; // 教授科目

    // 构造函数1:不带参数
    public Teacher() {}
    // 构造函数2:带参数
    public Teacher(String name, int age, char gender, String id, String subject) {
        super(name, age, gender);
        this.id = id;
        this.subject = subject;
    }

    // 获取工号
    public String getId() {
        return id;
    }
    // 获取教授科目
    public String getSubject() {
        return subject;
    }
}

四、学生类与教师类的应用举例

学生类和教师类的应用非常广泛。我们可以在学校管理系统中使用学生类来完成学生信息的管理,而教师类则可以用来管理教师信息。下面给出一个简单的例子,使用学生类和教师类来表示学生和教师信息。

import java.util.ArrayList;

public class SchoolManagementSystem {
    private ArrayList students; // 所有学生
    private ArrayList teachers; // 所有教师

    // 构造函数
    public SchoolManagementSystem() {
        students = new ArrayList();
        teachers = new ArrayList();
    }

    // 添加学生
    public void addStudent(String name, int age, char gender, String id, String major) {
        Student student = new Student(name, age, gender, id, major);
        students.add(student);
    }

    // 添加教师
    public void addTeacher(String name, int age, char gender, String id, String subject) {
        Teacher teacher = new Teacher(name, age, gender, id, subject);
        teachers.add(teacher);
    }

    // 获取所有学生
    public ArrayList getAllStudents() {
        return students;
    }

    // 获取所有教师
    public ArrayList getAllTeachers() {
        return teachers;
    }
}