想利用if判断语句实现员工所属部门的人数,但感觉判断语句并没有执行
package com.imooc.demo;
/**
* 部门类
* @author JoeXLong
*
*/
public class Ministry {
//1、部门编号 2、部门名称
private String ministryNo;
private String ministryName;
private Staff[] staffs = new Staff[200];
private Post[] posts;
private int shiNum;
private int kaiNum;
private int countNum;
public Ministry() {}
public Ministry(String ministryNo, String ministryName) {
this.setMinistryNo(ministryNo);
this.setMinistryName(ministryName);
}
public Ministry(String ministryNo, String ministryName,Staff[] staffs,Post[] posts) {
this.setMinistryNo(ministryNo);
this.setMinistryName(ministryName);
this.setStaffs(staffs);
this.setPosts(posts);
}
public String getMinistryNo() {
return ministryNo;
}
public void setMinistryNo(String ministryNo) {
this.ministryNo = ministryNo;
}
public String getMinistryName() {
if(!ministryName.equals("开发部")&&!ministryName.equals("市场部")) {
this.setMinistryName("待定");
}
return ministryName;
}
public void setMinistryName(String ministryName) {
this.ministryName = ministryName;
}
public int getCountNum() {
return countNum;
}
public void setCountNum(int countNum) {
this.countNum = countNum;
}
/**
* 获取员工信息,如果员工信息的数组未被初始化 则先进行初始化
* @return 员工信息的数组
*/
public Staff[] getStaffs() {
if(this.staffs==null) {
this.staffs = new Staff[200];
}
return staffs;
}
public void setStaffs(Staff[] staffs) {
this.staffs = staffs;
}
public int getShiNum() {
return shiNum;
}
public void setShiNum(int shiNum) {
this.shiNum = shiNum;
}
public int getKaiNum() {
return kaiNum;
}
public void setKaiNum(int kaiNum) {
this.kaiNum = kaiNum;
}
public Post[] getPosts() {
if(this.posts==null) {
this.posts = new Post[200];
}
return posts;
}
public void setPosts(Post[] posts) {
this.posts = posts;
}
public String info() {
String str = "我是:\n"+this.getMinistryName()+"\n我的编号是:\n"+this.getMinistryNo();
return str;
}
/**
* 统计总人数
* @param sta 员工
*/
public void addCountt(Staff sta) {
for(int i = 0;i<this.staffs.length;i++) {
if(this.getStaffs()[i]==null) {
sta.setMinistry(this);
this.getStaffs()[i]=sta;
this.countNum = i+1;
if(countNum!=0) {
if(this.getMinistryName()!=null & this.getMinistryName().equals("开发部")) {
shiNum++;
}
if(this.getMinistryName().equals("开发部")) {
kaiNum++;
}
return;
}
}
}
}
}
正在回答 回答被采纳积分+1
同学你好,老师在这里重新修改一下同学的代码,如下图所示:
原因如下:
数组元素初始值为0,当数组元素不为0时,表示该数组下标已经存在员工。
当下标为i的数组元素为0时,再将加入的员工放入staffs数组。
当员工放入数组后,无需再执行其他操作,使用break跳出循环即可。
我们先在测试类中创建两个Ministry 对象。
Ministry m1=new Ministry(1,"开发"); Ministry m2=new Ministry(2,"市场"); m1.addCountt(staff1); m1.addCountt(staff2); m2.addCountt(staff3);
当m1对象调用addCountt方法时,获取的是开发部门的staffs数组,存放的是开发部门的所有员工,不是所有部门的总人数。所以遍历staffs数组时,countNum只是开发部门的员工数,使用m1.getCountNum获得。
同理,当m2对象调用addCountt方法时,获取的是市场部门的staffs数组,存放的是市场部门的所有员工,也不是所有部门的总人数。遍历staffs数组时,countNum只是市场部门的员工数,使用m2.getCountNum获得。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星