Java程序设计2023-第三次上机测试

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

学校需要构建综合系统,使用者包含多种角色。角色Role分两类:学生Student和雇员Employee;雇员又分为教员Faculty和职员Staff。
每个角色都有姓名、年龄。学生有学号、班级。一个雇员有工号、入职日期。教员有职称。职员有职位称号。
请以如下Main类为基础,构建各个角色类,将代码补充完整。

import java.util.*;
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{
    String id,occupation;
    int year,month,day;
    public Faculty(String a,int b,String c,int d,int e,int f,String g){
        super(a,b);
        id=c;occupation=g;
        year=d;month=e;day=f;
    }
    public void show(){
        System.out.println("我是"+super.getName()+",年龄"+super.getAge()+"岁。工号是"+
            id+","+year+"年"+month+"月"+day+"日入职。是一名教师,"+occupation+"职称。");
    }
}
//派生类 Student 学生
class Student extends Role{
    String id,clas;
    public Student(String a,int b,String c,String g){
        super(a,b);
        id=c;clas=g;
    }
    public void show(){
        System.out.println("我是"+super.getName()+",年龄"+super.getAge()+"岁。学号是"+
            id+",来自"+clas+"班。");
    }
}
//派生类 Staff 职员
class Staff extends Role{
    String id,occupation;
    int year,month,day;
    public Staff(String a,int b,String c,int d,int e,int f,String g){
        super(a,b);
        id=c;occupation=g;
        year=d;month=e;day=f;
    }
    public void show(){
        System.out.println("我是"+super.getName()+",年龄"+super.getAge()+"岁。工号是"+
            id+","+year+"年"+month+"月"+day+"日入职。是一名"+occupation+"。");
    }
}

7-2学生类-构造函数

定义一个有关学生的Student类,内含类成员变量:
String name、String sex、int age,所有的变量必须为私有(private)。

1.编写有参构造函数:
能对name,sex,age赋值。
2.覆盖toString函数:
按照格式:类名 [name=, sex=, age=]输出。使用idea自动生成,然后在修改成该输出格式
3.对每个属性生成setter/getter方法
4.main方法中
•输入1行name age sex , 调用上面的有参构造函数新建对象。
输入样例:

tom 15 male

输出样例:

Student [name='tom', sex='male', age=15]
import java.util.*;
//派生类 Student 学生
class Student {
    private String name,sex;
    private int age;
    public Student(String a,String b,int c){
        name=a;sex=b;age=c;
    }
    public String toString(){
        return "Student [name='"+name+"', sex='"+sex+"', age="+age+"]";
    }
    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 class Main {
    public static void main(String[] args) {
        Scanner in =new Scanner(System.in);
        String str=in.nextLine();
        String []s=str.split("\\s+");
        Student stu = new Student(s[0],s[2],Integer.parseInt(s[1]));
        System.out.println(stu);
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值