设计一个包含5个类的Java程序,名为Person的父类有两个子类,学生类Student和员工类Employee。Employee类有两个子类,教师类Faculty和 职员类Staff。所有人都有编号

设计一个包含5个类的Java程序,名为Person的父类有两个子类,学生类Student和员工类Employee。Employee类有两个子类,教师类Faculty和 职员类Staff。所有人都有编号ID、姓名和电子邮件地址。学生类Student有班级状态(大一、大二、大三或大四)。教师类Faculty有主讲课程、专业信息。职员类Staff有职务信息。覆盖每个类中的toString()方法,输出相应的类名、编号ID和姓名。

编写一个测试程序,随机创建5个Student、Faculty或Staff对象,放在一个数组或者Vector类对象中,依次调用他们的toString()方法显示信息。(提示,查询Java生成随机数方法;Java中对象容器类Vector。)

import java.util.Random;
import java.util.Vector;

class Person{
    public int _ID;//ID
    public String _email;//邮箱地址
    public String _name;//姓名

    Person(){}

    Person(int id,String email,String name){//获取Person类对象的数据
        this._ID=id;
        this._email=email;
        this._name=name;
    }

    public int getID(){//获取ID
        return _ID;

    }

    public String getemail(){//获取邮箱地址
        return _email;
    }

    public String getname(){//获取姓名信息
        return _name;
    }

     public String  toString(){//输出信息
        return ("Person类:"+"\n"+"姓名:"+this._name+"\n"+"ID:"+this._ID+"\n"+"邮箱地址:"+this._email);
    }
}

class Student extends Person{//继承Person类
    //班级状态
    String _grade;//年级
    String _class;//班级

    Student(){
    }

    Student(int id,String email,String name,String grade,String theclass){//获取Student类对象的数据
        super(id,email,name);//使用super调用父类构造函数必须放在第一行(长知识了)
        this._grade=grade;
        this._class=theclass;   
    }

    public String toString(){//输出信息
        return ("Student类:"+"\n"+"姓名:"+this._name+"\n"+"ID:"+this._ID+"\n"+"邮箱地址:"+this._email+"\n"+_grade+"年级/"+_class);
    }
}

class Employee extends Person{
    public int _salary;//额外加个属性 工资 祝老师工资节节攀升,学长年薪百万

    Employee(){}

    Employee(int id,String email,String name,int salary){
        super(id,email,name);//使用super调用父类构造函数必须放在第一行(长知识了)
        this._salary=salary;
    }

    public String toString(){//打印输出信息
        return ("Employee类:"+"\n"+"姓名:"+this._name+"\n"+"ID:"+this._ID+"\n"+"邮箱地址:"+this._email+"\n"+"工资待遇:"+_salary);
    }
}

class Staff extends Employee{
    String _work;//职务信息

    Staff(){}

    Staff(int id,String email,String name,int salary,String work){//职工类构造函数
        super(id,email,name,salary);//使用super调用父类构造函数必须放在第一行(长知识了)
        this._work=work;
    }

    public String toString(){//打印输出信息
        return ("Staff类:"+"\n"+"姓名:"+this._name+"\n"+"ID:"+this._ID+"\n"+"邮箱地址:"+this._email+"\n"+"工资待遇:"+_salary+"\n"+"职务信息:"+_work);
    }
}

class Faculty extends Employee{
    String _lecture;//主讲课程
    String _subject;//专业信息

    Faculty(){}

    Faculty(int id,String email,String name,int salary,String lecture,String subject){

        super(id,email,name,salary);//使用super调用父类构造函数必须放在第一行(长知识了)
        this._lecture=lecture;
        this._subject=subject;
    }

    public String toString(){//打印输出信息
        return  ("Faculty类:"+"\n"+"姓名:"+this._name+"\n"+"ID:"+this._ID+"\n"+"邮箱地址:"+this._email+"\n"+"工资待遇:"+_salary+"\n"+"主讲课程"+_lecture+"专业信息"+_subject);
    }
}

public class test107 {
    public static void main(String args[]) {
        Vector<Person>people=new Vector<Person>();//储存数据

      
        for(int i=0;i<5;i++){
            int IDrandom=(int)(Math.random()*1000000+100000);//随机生成ID
            int gradeRandom=(int)(Math.random()*4+1);//随机生成年级
            int classRandom=(int)(Math.random()*5+1);//随机生成班级
            // int nameRandom = (int )(Math.random()*5);//随机生成名字
            // int emailRandom = (int )(Math.random()*5);//随机生成名字

            String grade;//年级
            String classes;//班级

            switch(gradeRandom){//具体年级变为字符串
                case 1:grade="大一";break;
                case 2:grade="大二";break;
                case 3:grade="大三";break;
                default:grade="大四";break;
            }

            switch(classRandom){//具体班级变为字符串
                case 1:classes="一班";break;
                case 2:classes="二班";break;
                case 3:classes="三班";break;
                case 4:classes="四班";break;
                default:classes="五班";break;
            }

            
            Random random = new Random();//生成随机数

            switch(random.nextInt(3)){//生成随机类
                case 0:people.add (new Staff(IDrandom,"职工邮箱","职工名称",10000,"职员职位"));break;
                case 1:people.add (new Student(IDrandom,"学生邮箱","学生名称",grade,classes));break;
                case 2:people.add (new Faculty(IDrandom,"教师邮箱","教师名称",100000,"java","计算机科学与技术"));break;
            }
            
        }

        for(int j=0;j<people.size();j++){
            System.out.println(people.get(j).toString()+'\n');//toString打印输出
        }

		// 编写一个测试程序,随机创建5个Student、Faculty或Staff对象,
        // 放在一个数组或者Vector类对象中,依次调用他们的toString()方法显示信息。
        // (提示,查询Java生成随机数方法;Java中对象容器类Vector。)
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值