部门人数统计作业反馈

部门人数统计作业反馈

作业当中我是拿静态二维数组成员按部门保存staff对象,这样也方便统计人数,是可行的。但是反馈当中助教提示说可以使用一维数组保存,另一个变量记录部门人数,我不是很明白。

一维数组应该只能起到一个保存的作用。要说到每个部门的人数,因为本身没有固定的部门数,不可能通过提前设定多个变量来保存人数。用数组的话,我不知道如何建立部门名字-数组下标-人数三者之间的联系。下标和部门编号是对应的,但是编号和部门名字怎么对应呢?是再建立一个对应的部门名字数组吗?似乎是可行的

不知道助教是不是想表达用这个做法?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

1、部门编号和部门的关联,在部门类中通过有参构造方法中传递部门编号和部门名称即可完成部门和部门编号之间的关联。同理,职务名称和职务编号也是这么进行关联的。

2、部门、职务和员工之间的关联,是在员工类中通过有参构造方法将部门对象和职务对象作为参数,在测试类中进行初始化的时候,将对应的部门和职务对象传递进去即可。比如:该员工是市场部经理,那么就传入定义的市场部对象以及经理职务对象即可完成关联。

3、统计部门人数,通过addStaff()方法,在方法中通过for循环遍历,判断数组的哪一位是空,如果为空,将传进去的员工对象存储起来,并将统计人数的变量值加1,即完成了员工人数的统计。当然通过不同部门对象调用的addStaff()方法就会统计对应部门的员工人数。

4、你写的二维数组最后的运行结果是正确的,但是本题主要考察面向对象的思想,应该通过不同的对象去调用对应的方法。如果还有什么不明白的地方,可以在问答里继续提问。祝学习愉快~

  • 返璞归真的叶子 提问者 #1
    请问“通过不同部门对象调用的addStaff()方法就会统计对应部门的员工人数”是如何做到的? 我的理解是staff对象数量=部门对象数量。每次定义一个新的staff都会新建一个部门对象,所有部门对象之间的联系由静态变量完成。您的意思是如果只有三个不同的部门,则一共只有三个部门对象?
    2017-09-09 12:15:22
  • Tender10 回复 提问者 返璞归真的叶子 #2
    因为这是一个面向对象的过程。假设你有两个部门d1和d2,当使用d1对象去掉用add()方法的时候,是不是相当于你添加进去的员工对象都会由这个部门对象去掉用统计人数的变量,并且相加。当使用d2对象调用add()方法时,是不是一个新的对象,新的对象是不是就相当于有一个新的add()方法以及统计人数的变量。两个对象之间是互不干扰的。
    2017-09-10 11:19:55
  • 返璞归真的叶子 提问者 回复 Tender10 #3
    您的意思是,当实例化一个新的staff对象的时候,通过staff.department.addstaff()建立staff和部门之间的联系,存储到部门d1的静态成员staff数组中的同时,遍历所有的staff对象,计算部门名字为d1的staff数量? 我不理解的是,新定义的staff对象关联的部门对象也是一个新的实例,怎么能做到直接引用已经存在的某个部门的实例呢?它的所有成员除了静态变量,都是初始化状态。也就是说,它的计算部门员工数量的变量也是0。 我现在还在学习中,不是很懂这个所谓的面向对象的思想,还请多多指教。。。
    2017-09-10 15:39:41
提问者 返璞归真的叶子 2017-09-06 23:40:24

老师的反馈如下:

(1)部门类中其实只需要定义一个一维数组即可,用于存储员工对象。数组初始化建议用到的时候在进行初始化,只要做好正确的判断是不会出现空指针异常的,可以提高代码的性能。(2)addStaff()方法里不需要分别判断是哪个部门的,只需要判断数组的哪一位为空,然后将员工对象存储进去即可,并且让统计部门人数的变量值加1,传递的参数也只需要是员工对象即可。后面在统计人数时,通过不同的部门对象,调用add方法就会分别统计部门的员工人数了。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师