第9章 Java异常处理

117 篇文章 0 订阅
116 篇文章 0 订阅

9、修改NameListService类

在NameListService类的构造器中为employees数组赋值。NameListService补充两个方法

    public NameListService() {

        employees = new Employee[EMPLOYEES.length];//根据Data.EMPLOYEES数组的长度来确定员工人数

 

        //为employees的每一个元素赋值一个员工对象信息

        for (int i = 0; i < EMPLOYEES.length; i++) {

           

            //二维数组的每一行的第1列是用来区分员工是属于什么类型的

            int type = Integer.parseInt(EMPLOYEES[i][0]);

           

            //这些属性是每个员工都有的。剩下的属性要根据员工的职务类型不同有所不同

            int id = Integer.parseInt(EMPLOYEES[i][1]);

            String name = EMPLOYEES[i][2];

            int age = Integer.parseInt(EMPLOYEES[i][3]);

            double salary = Integer.parseInt(EMPLOYEES[i][4]);

 

            Equipment eq;

            double bonus;

            int stock;

           

            //根据type的值,创建不同类型的员工对象

            switch (type) {

                case PROGRAMMER:

                    eq = createEquipment(i);//第i行的员工对应第i行的设备

                    //如果11,代表的是程序,就要创建程序员对象

                    employees[i] = new Programmer(id, name, age, salary, eq);

                    break;

                case DESIGNER:

                    eq = createEquipment(i);

                    bonus = Integer.parseInt(EMPLOYEES[i][5]);

                    employees[i] = new Designer(id, name, age, salary, eq, bonus);

                    break;

                case ARCHITECT:

                    eq = createEquipment(i);

                    bonus = Integer.parseInt(EMPLOYEES[i][5]);

                    stock = Integer.parseInt(EMPLOYEES[i][6]);

                    employees[i] = new Architect(id, name, age, salary, eq, bonus, stock);

                    break;

                default:

                    //普通员工没有设备

                    employees[i] = new Employee(id, name, age, salary);

                    break;

            }

        }

    }

 

    private Equipment createEquipment(int index) {

        int type = Integer.parseInt(EQIPMENTS[index][0]);

        switch (type) {

            case PC:

                return new PC(EQIPMENTS[index][1], EQIPMENTS[index][2]);

            case NOTEBOOK:

                int price = Integer.parseInt(EQIPMENTS[index][2]);

                return new NoteBook(EQIPMENTS[index][1], price);

            case PRINTER:

                return new Printer(EQIPMENTS[index][1], EQIPMENTS[index][2]);

        }

        return null;

    }

 

 

本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值