7-2 校园角色类设计(学生Student、教员Faculty和职员Staff)

简介: 7-2 校园角色类设计(学生Student、教员Faculty和职员Staff)

7-2 校园角色类设计(学生Student、教员Faculty和职员Staff)


分数 15

全屏浏览题目

切换布局

作者 刘凤良

单位 天津仁爱学院


学校需要构建综合系统,使用者包含多种角色。角色Role分两类:学生Student和雇员Employee;雇员又分为教员Faculty和职员Staff。


每个角色都有姓名、年龄。学生有学号、班级。一个雇员有工号、入职日期。教员有职称。职员有职位称号。


请以如下Main类为基础,构建各个角色类,将代码补充完整。

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{
 
}

输出样例:

我是张三,年龄32岁。工号是33006,2021年9月1日入职。是一名教师,讲师职称。
我是王五,年龄27岁。工号是32011,2017年7月23日入职。是一名教务员。
我是李四,年龄19岁。学号是20201103,来自202011班。


持续关注 有更多题目

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 + "。");
    }
}
相关文章
|
供应链 关系型数据库 MySQL
Mysql 设计超市经营管理系统,包括员工信息表(employee)和 员工部门表(department)
Mysql 设计超市经营管理系统,包括员工信息表(employee)和 员工部门表(department)
414 0
Mysql 设计超市经营管理系统,包括员工信息表(employee)和 员工部门表(department)
|
8月前
|
SQL
现有用户成就统计需求,每个用户有多个成就,某一个成就会被多人拥有,写出数据表设计方案,用一条sql查出每个成就(B.ach_name)下的男生(sex=0)和女生(sex=1)分别有多少?
现有用户成就统计需求,每个用户有多个成就,某一个成就会被多人拥有,写出数据表设计方案,用一条sql查出每个成就(B.ach_name)下的男生(sex=0)和女生(sex=1)分别有多少?
76 0
|
7月前
|
Java 程序员
JavaSE——面向对象高级二(3/4)-接口(认识接口、接口的好处)以及接口的综合案例(设计班级学生的信息管理模块)
JavaSE——面向对象高级二(3/4)-接口(认识接口、接口的好处)以及接口的综合案例(设计班级学生的信息管理模块)
45 0
学生信息管理信息系统--添加窗体(学籍,课程,班级,成绩)问题汇总
学生信息管理信息系统--添加窗体(学籍,课程,班级,成绩)问题汇总
|
机器学习/深度学习 人工智能 自然语言处理
实验内容:根据《网上图书销售系统》的功能需求,使用Rational Rose建立系统的类图模型
实验内容:根据《网上图书销售系统》的功能需求,使用Rational Rose建立系统的类图模型
170 0
|
前端开发 数据库
【学生管理系统】班级管理
【学生管理系统】班级管理
253 0
【学生管理系统】班级管理
|
Java
Java实验报告四,研究生薪资管理,创建一个抽象交通工具Vehicle类,经理与员工工资等实验
1、实验题目:类的继承和方法重写 定义一个基类作为父类,再定义一个继承父类的子类,在子类中重写父类的方法,使用super关键字调用父类的方法,测试其功能。
321 0
|
安全 Java 数据安全/隐私保护
四、学生评教管理系统java版(对学生的增删改查,对课程的增删查,老师的添加,教师对课程的排课,查询教师与课程号的对应信息,学生登录并授课评价),并且对其进行了优化,在主方法中全部可以实现(附源代码)
四、学生评教管理系统java版(对学生的增删改查,对课程的增删查,老师的添加,教师对课程的排课,查询教师与课程号的对应信息,学生登录并授课评价),并且对其进行了优化,在主方法中全部可以实现(附源代码)
四、学生评教管理系统java版(对学生的增删改查,对课程的增删查,老师的添加,教师对课程的排课,查询教师与课程号的对应信息,学生登录并授课评价),并且对其进行了优化,在主方法中全部可以实现(附源代码)
|
SQL 关系型数据库 MySQL
MySQL测试题——开发公司人事管理系统,包括 Employee表 和 Department表
MySQL测试题——开发公司人事管理系统,包括 Employee表 和 Department表
497 0
MySQL测试题——开发公司人事管理系统,包括 Employee表 和 Department表