为什么统计人数是错的

为什么统计人数是错的

public class Department {

private String depName;

private String depNum;

private Staff[] myStaff;

private int myStaffNum;

public Department() {

}

public Department(String depName) {

this.setDepName(depName);

}

public Department(String depName,String depNum,Staff[]myStaff) {

this.setDepName(depName);

this.setDepNum(depNum);

this.setMyStaff(myStaff);

}


public String getDepNum() {

return depNum;

}

public void setDepNum(String depNum) {

this.depNum = depNum;

}

public String getDepName() {

return depName;

}


public void setDepName(String depName) {

this.depName = depName;

}


public Staff[] getMyStaff() {

if(this.myStaff==null) {

this.myStaff=new Staff[200];

}

return myStaff;

}

public void setMyStaff(Staff[] myStaff) {

this.myStaff = myStaff;

}


public int getMyStaffNum() {

return myStaffNum;

}

public void setMyStaffNum(int myStaffNum) {

this.myStaffNum = myStaffNum;

}

public void count(Staff sta) {

int i;

for(i=0;i<this.getMyStaff().length;i++) {

if(this.getMyStaff()[i]==null) {

this.getMyStaff()[i]=sta;

break;

}

this.myStaffNum=i+1;


}

}

public class Job {

private String jobName;

private String jobNum;

public Job() {

}

public Job(String jobName,String jobNum) {

this.setJobName(jobName);

this.setJobNum(jobNum);

}


public String getJobNum() {

return jobNum;

}

public void setJobNum(String jobNum) {

this.jobNum = jobNum;

}

public String getJobName() {

return jobName;

}


public void setJobName(String jobName) {

this.jobName = jobName;

}

public class Staff {

private String name;

private String jobNumber;

private char sex;

private int age;

private String depName;

private String jobName;


public Staff() {

}

public Staff(String name,String jobNumber,char sex,int age,String depName,String jobName) {

this.setName(name);

this.setJobNumber(jobNumber);

this.setAge(age);

this.setSex(sex);

this.setDepName(depName);

this.setJobName(jobName);

}


public String getDepName() {

return depName;

}

public void setDepName(String depName) {

this.depName = depName;

}

public String getJobName() {

return jobName;

}

public void setJobName(String jobName) {

this.jobName = jobName;

}

public String getName() {

return name;

}


public void setName(String name) {

this.name = name;

}


public String getJobNumber() {

return jobNumber;

}


public void setJobNumber(String jobNumber) {

this.jobNumber = jobNumber;

}


public int getAge() {

return age;

}


public void setAge(int age) {

if(this.age<18||this.age>15) {

this.age=18;

}

this.age = age;

}


public char getSex() {

return sex;

}


public void setSex(char sex) {

if(this.sex!='男'&&this.sex!='女') {

this.sex='男';

}

this.sex = sex;

}

public String introduction() {

String str="姓名;"+this.getName()+"\n工号:"+this.getJobNumber()+"\n年龄:"+this.getAge()+"\n性别:"+this.getSex()+"\n职务:"+depName+jobName;

return str;

}

public class Test {


public static void main(String[] args) {

// TODO Auto-generated method stub

Department dep=new Department();


Staff sta1=new Staff("张铭","S001",'男',29,"人事部","经理");

System.out.println(sta1.introduction());

System.out.println("===========================");

Staff sta2=new Staff("李艾爱","S002",'女',21,"人事部","助理");

System.out.println(sta2.introduction());

System.out.println("===========================");

Staff sta3=new Staff("孙超","S004",'男',29,"人事部","职员");

System.out.println(sta3.introduction());

System.out.println("===========================");

Staff sta4=new Staff("张美美","S005",'女',26,"市场部","职员");

System.out.println(sta4.introduction());

System.out.println("===========================");

Staff sta5=new Staff("蓝迪","S006",'男',37,"市场部","经理");

System.out.println(sta5.introduction());

System.out.println("===========================");

Staff sta6=new Staff("米莉","S007",'女',24,"市场部","职员");

System.out.println(sta6.introduction());

System.out.println("===========================");

dep.count(sta1);

dep.count(sta2);

dep.count(sta3);

dep.count(sta4);

dep.count(sta5);

dep.count(sta6);

System.out.println(dep.getMyStaffNum());

}


}


正在回答 回答被采纳积分+1

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

2回答
好帮手慕阿满 2019-03-06 13:40:31

同学的统计人数的方法有点问题,this.myStaffNum = i + 1;这句代码应该在循环外,而同学写在了循环内。同学将代码移到循环外再试试。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

好帮手慕阿满 2019-03-05 18:26:00

同学你好,建议同学在部门类中定义双参构造方法,如:

http://img1.sycdn.imooc.com//climg/5c7e4e230001b42406950205.jpg

在测试类中,定义部门类对象,如:

http://img1.sycdn.imooc.com//climg/5c7e4e3b0001207306270090.jpg

通过部门对象调用count()方法统计人数,员工属于哪个部门,使用那个部门对象调用,如:

http://img1.sycdn.imooc.com//climg/5c7e4ea40001976907160353.jpg

并输出部门名称及员工个数。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 慕先生8069638 #1
    我按照上边的代码改过后,为什么输出的人数都是2? 人事部共有员工:2名 市场部共有员工:2名
    2019-03-05 19:17:22
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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