Java面向对象编程:模拟学校系统(Person、Teacher、Student、School)
Java面向对象编程:模拟学校系统
本示例演示如何使用Java面向对象编程来模拟一个简单的学校系统,包含Person、Teacher、Student和School等类,并展示了继承、封装和多态等面向对象编程概念。
包结构
com.school
├── person
│ └── Person.java
├── teacher
│ └── Teacher.java
├── headteacher
│ └── HeadTeacher.java
├── student
│ └── Student.java
├── school
│ └── School.java
└── Main.java
类定义
包1:com.school.person
package com.school.person;
/**
* 人员类
*/
public class Person {
/**
* 姓名
*/
private String name;
/**
* 年龄
*/
private int age;
/**
* 构造方法
*
* @param name 姓名
* @param age 年龄
*/
public Person(String name, int age) {
this.name = name;
this.age = age;
}
/**
* 获取姓名
*
* @return 姓名
*/
public String getName() {
return name;
}
/**
* 获取年龄
*
* @return 年龄
*/
public int getAge() {
return age;
}
/**
* 设置姓名
*
* @param name 姓名
*/
public void setName(String name) {
this.name = name;
}
/**
* 设置年龄
*
* @param age 年龄
*/
public void setAge(int age) {
this.age = age;
}
}
包2:com.school.teacher
package com.school.teacher;
import com.school.person.Person;
/**
* 教师类
*/
public class Teacher extends Person {
/**
* 工号
*/
private String id;
/**
* 教授科目
*/
private String subject;
/**
* 构造方法
*
* @param name 姓名
* @param age 年龄
* @param id 工号
* @param subject 教授科目
*/
public Teacher(String name, int age, String id, String subject) {
super(name, age);
this.id = id;
this.subject = subject;
}
/**
* 获取工号
*
* @return 工号
*/
public String getId() {
return id;
}
/**
* 获取教授科目
*
* @return 教授科目
*/
public String getSubject() {
return subject;
}
/**
* 设置工号
*
* @param id 工号
*/
public void setId(String id) {
this.id = id;
}
/**
* 设置教授科目
*
* @param subject 教授科目
*/
public void setSubject(String subject) {
this.subject = subject;
}
}
包3:com.school.headteacher
package com.school.headteacher;
import com.school.teacher.Teacher;
/**
* 班主任类
*/
public class HeadTeacher extends Teacher {
/**
* 班级
*/
private String className;
/**
* 构造方法
*
* @param name 姓名
* @param age 年龄
* @param id 工号
* @param subject 教授科目
* @param className 班级
*/
public HeadTeacher(String name, int age, String id, String subject, String className) {
super(name, age, id, subject);
this.className = className;
}
/**
* 获取班级
*
* @return 班级
*/
public String getClassName() {
return className;
}
/**
* 设置班级
*
* @param className 班级
*/
public void setClassName(String className) {
this.className = className;
}
}
包4:com.school.student
package com.school.student;
import com.school.person.Person;
/**
* 学生类
*/
public class Student extends Person {
/**
* 学号
*/
private String id;
/**
* 班级
*/
private String className;
/**
* 构造方法
*
* @param name 姓名
* @param age 年龄
* @param id 学号
* @param className 班级
*/
public Student(String name, int age, String id, String className) {
super(name, age);
this.id = id;
this.className = className;
}
/**
* 获取学号
*
* @return 学号
*/
public String getId() {
return id;
}
/**
* 获取班级
*
* @return 班级
*/
public String getClassName() {
return className;
}
/**
* 设置学号
*
* @param id 学号
*/
public void setId(String id) {
this.id = id;
}
/**
* 设置班级
*
* @param className 班级
*/
public void setClassName(String className) {
this.className = className;
}
}
包5:com.school.school
package com.school.school;
/**
* 学校类
*/
public class School {
/**
* 学校名称
*/
private String name;
/**
* 构造方法
*
* @param name 学校名称
*/
public School(String name) {
this.name = name;
}
/**
* 获取学校名称
*
* @return 学校名称
*/
public String getName() {
return name;
}
/**
* 设置学校名称
*
* @param name 学校名称
*/
public void setName(String name) {
this.name = name;
}
}
包6:com.school.Main
package com.school;
import com.school.headteacher.HeadTeacher;
import com.school.school.School;
import com.school.student.Student;
import com.school.teacher.Teacher;
public class Main {
public static void main(String[] args) {
// 创建学校对象
School school = new School("北京大学");
System.out.println("学校名称:" + school.getName());
// 创建教师对象
Teacher teacher = new Teacher("张老师", 35, "T001", "数学");
System.out.println("教师姓名:" + teacher.getName() + ", 教授科目:" + teacher.getSubject());
// 创建班主任对象
HeadTeacher headTeacher = new HeadTeacher("李老师", 40, "T002", "语文", "高一(1)班");
System.out.println("班主任姓名:" + headTeacher.getName() + ", 班级:" + headTeacher.getClassName());
// 创建学生对象
Student student = new Student("王同学", 17, "S001", "高一(1)班");
System.out.println("学生姓名:" + student.getName() + ", 班级:" + student.getClassName());
}
}
运行结果
学校名称:北京大学
教师姓名:张老师, 教授科目:数学
班主任姓名:李老师, 班级:高一(1)班
学生姓名:王同学, 班级:高一(1)班
总结
本示例演示了如何使用Java面向对象编程来模拟一个简单的学校系统,包含Person、Teacher、Student和School等类,并展示了继承、封装和多态等面向对象编程概念。通过这个示例,我们可以更好地理解面向对象编程的优势,并将其应用到实际的软件开发中。
原文地址: https://www.cveoy.top/t/topic/mNK8 著作权归作者所有。请勿转载和采集!