7-2 校园角色类设计(学生Student、教员Faculty和职员Staff)
分数 15
全屏浏览题目
切换布局
作者 刘凤良
单位 天津仁爱学院
学校需要构建综合系统,使用者包含多种角色。角色Role分两类:学生Student和雇员Employee;雇员又分为教员Faculty和职员Staff。 每个角色都有姓名、年龄。学生有学号、班级。一个雇员有工号、入职日期。教员有职称。职员有职位称号。 请以如下Main类为基础,构建各个角色类,将代码补充完整。
代码语言:javascript复制public class Main {
public static void main(String[] args) {
Faculty fac = new Faculty("张三", 32, "33006", 2021, 9, 1, "讲师");
Student stu = new Student("李四", 19, "20201103", "202011");
Staff sta = new Staff("王五", 27, "32011", 2017, 7, 23, "教务员");
fac.show();
sta.show();
stu.show();
}
}
//基类 Role
class Role {
protected String name; //姓名
protected int age;
//构造方法
public Role() {
}
public Role(String name, int age) {
this.name = name;
this.age=age;
}
//Setter/Getter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//业务方法
public void show(){
System.out.print("我是" name ",年龄" age "岁。");
}
}
//派生类 Faculty 教员
class Faculty extends Role{
}
//派生类 Student 学生
class Student extends Role{
}
//派生类 Staff 职员
class Staff extends Role{
}
输入样例:
代码语言:javascript复制
输出样例:
代码语言:javascript复制我是张三,年龄32岁。工号是33006,2021年9月1日入职。是一名教师,讲师职称。
我是王五,年龄27岁。工号是32011,2017年7月23日入职。是一名教务员。
我是李四,年龄19岁。学号是20201103,来自202011班。
持续关注 有更多题目
代码语言:javascript复制import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
Faculty fac = new Faculty("张三", 32, "33006", 2021, 9, 1, "讲师");
Student stu = new Student("李四", 19, "20201103", "202011");
Staff sta = new Staff("王五", 27, "32011", 2017, 7, 23, "教务员");
fac.show();
sta.show();
stu.show();
}
}
//基类 Role
class Role {
protected String name; //姓名
protected int age;
//构造方法
public Role() {
}
public Role(String name, int age) {
this.name = name;
this.age = age;
}
//Setter/Getter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//业务方法
public void show() {
System.out.print("我是" name ",年龄" age "岁。");
}
}
//派生类 Faculty 教员
class Faculty extends Role {
private String employeeID;
private LocalDate hireDate;
private String title;
public Faculty(String name, int age, String employeeID, int year, int month, int day, String title) {
super(name, age);
this.employeeID = employeeID;
this.hireDate = LocalDate.of(year, month, day);
this.title = title;
}
@Override
public void show() {
super.show();
System.out.println("工号是" employeeID "," hireDate.getYear() "年" hireDate.getMonthValue() "月" hireDate.getDayOfMonth() "日入职。是一名教师," title "职称。");
}
}
//派生类 Student 学生
class Student extends Role {
private String studentID;
private String className;
public Student(String name, int age, String studentID, String className) {
super(name, age);
this.studentID = studentID;
this.className = className;
}
@Override
public void show() {
super.show();
System.out.println("学号是" studentID ",来自" className "班。");
}
}
//派生类 Staff 职员
class Staff extends Role {
private String employeeID;
private LocalDate hireDate;
private String position;
public Staff(String name, int age, String employeeID, int year, int month, int day, String position) {
super(name, age);
this.employeeID = employeeID;
this.hireDate = LocalDate.of(year, month, day);
this.position = position;
}
@Override
public void show() {
super.show();
System.out.println("工号是" employeeID "," hireDate.getYear() "年" hireDate.getMonthValue() "月" hireDate.getDayOfMonth() "日入职。是一名" position "。");
}
}