关于人数的储存和统计为什么会报错啊。还有,我的职务类好像用不到

关于人数的储存和统计为什么会报错啊。还有,我的职务类好像用不到

package com.imooc.companymodel;


/**

 * 部门类

 * 

 * @author Administrator

 *

 */

public class Department {

// 成员属性,部门编号、部门名称、员工数组、统计部门中的员工个数

private String departmentNo;

private String departmentName;

private StaffMember[] mystaffMenber;

private int staffMemberNum;


public Department() {

super();

}


public Department(String departmentNo, String departmentName, StaffMember[] mystaffMenber, int staffMemberNum) {

this.departmentNo = departmentNo;

this.departmentName = departmentName;

this.mystaffMenber = mystaffMenber;

this.staffMemberNum = staffMemberNum;

}


public String getDepartmentNo() {

return departmentNo;

}


public void setDepartmentNo(String departmentNo) {

this.departmentNo = departmentNo;

}


public String getDepartmentName() {

return departmentName;

}


public void setDepartmentName(String departmentName) {

this.departmentName = departmentName;

}


public StaffMember[] getMystaffMenber() {

return mystaffMenber;

}


public void setMystaffMenber(StaffMember[] mystaffMenber) {

this.mystaffMenber = mystaffMenber;

}


public int getStaffMemberNum() {

return staffMemberNum;

}


public void setStaffMemberNum(int staffMemberNum) {

this.staffMemberNum = staffMemberNum;

}


public String introduction() {

String str = "部门编号:" + this.getDepartmentNo() + "\n部门名称:" + this.getDepartmentName();

return str;

}


public void addStaffMember(StaffMember sta) {

/**

* 1、将员工保存到数组 2、将员工个数保存到staffMemberNum

*/

// 将员工保存到数组

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

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

this.getMystaffMenber()[i] = sta;

// 将员工个数保存到staffMemberNum

this.staffMemberNum = i + 1;

return;


}

}

}

}

package com.imooc.companymodel;


/**

 * 职务类

 * 

 * @author Administrator

 *

 */

public class Post {

// 成员属性,职务编号、职务名称

private String postName;

private String postNo;


public Post() {


}


public Post(String postName, String postNo) {

this.setPostName(postName);

this.setPostNo(postNo);

}


public String getPostName() {

return postName;

}


public void setPostName(String postName) {

this.postName = postName;

}


public String getPostNo() {

return postNo;

}


public void setPostNo(String postNo) {

this.postNo = postNo;

}


/**

* 职务介绍

* @return 职务编号、名称

*/

public String info() {

String str = "职务编号:" + this.getPostNo() + "\n职务名称:" + this.getPostName();

return str;

}

}

package com.imooc.companymodel;


/**

 * 员工类

 * 

 * @author Administrator

 *

 */

public class StaffMember {

// 成员属性,员工姓名、工号、年龄、性别、所属部门、职务信息

private String staffMemberName;

private String staffMemberNo;

private int staffMemberAge;

private String staffMemberSex;

private String staffMemberPostDepartment;

private String staffMemberPost;


public StaffMember() {


}


public StaffMember(String staffMemberName, String staffMemberNo, int staffMemberAge, String staffMemberSex,

String staffMemberPostDepartment, String staffMemberPost) {

this.setStaffMemberName(staffMemberName);

this.setStaffMemberNo(staffMemberNo);

this.setStaffMemberAge(staffMemberAge);

this.setStaffMemberSex(staffMemberSex);

this.setStaffMemberPostDepartment(staffMemberPostDepartment);

this.setStaffMemberPost(staffMemberPost);

}


public String getStaffMemberName() {

return staffMemberName;

}


public void setStaffMemberName(String staffMemberName) {

this.staffMemberName = staffMemberName;

}


public String getStaffMemberNo() {

return staffMemberNo;

}


public void setStaffMemberNo(String staffMemberNo) {

this.staffMemberNo = staffMemberNo;

}


public int getStaffMemberAge() {

return staffMemberAge;

}


public void setStaffMemberAge(int staffMemberAge) {

if (staffMemberAge < 18 || staffMemberAge > 100) {

this.staffMemberAge = 18;

} else {

this.staffMemberAge = staffMemberAge;

}

}


public String getStaffMemberSex() {

return staffMemberSex;

}


public void setStaffMemberSex(String staffMemberSex) {

this.staffMemberSex = staffMemberSex;

}


public String getStaffMemberPostDepartment() {

return staffMemberPostDepartment;

}


public void setStaffMemberPostDepartment(String staffMemberPostDepartment) {

this.staffMemberPostDepartment = staffMemberPostDepartment;

}


public String getStaffMemberPost() {

return staffMemberPost;

}


public void setStaffMemberPost(String staffMemberPost) {

this.staffMemberPost = staffMemberPost;

}


/**

* 员工介绍方法

* @return 姓名、工号等等信息

*/

public String introduction() {

String str = "姓名:" + this.getStaffMemberName() + "\n工号:" + this.getStaffMemberNo() + "\n性别:"

+ this.getStaffMemberSex() + "\n年龄:" + this.getStaffMemberAge() + "\n职务:"

+ this.getStaffMemberPostDepartment() + this.getStaffMemberPost();

return str;

}

}

package com.imooc.companytest;


import com.imooc.companymodel.Department;

import com.imooc.companymodel.StaffMember;


public class Test {


public static void main(String[] args) {

Department department1=new Department();

Department department2=new Department();

StaffMember st1 = new StaffMember("张铭", "s001", 29, "男", "人事部", "经理");

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

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

StaffMember st2 = new StaffMember("李艾爱", "s002", 21, "女", "人事部", "助理");

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

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

StaffMember st3 = new StaffMember("孙超", "s004", 29, "男", "人事部", "职员");

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

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

StaffMember st4 = new StaffMember("张美美", "s005", 26, "女", "市场部", "职员");

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

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

StaffMember st5 = new StaffMember("蓝迪", "s006", 37, "男", "市场部", "经理");

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

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

StaffMember st6 = new StaffMember("米莉", "s007", 24, "女", "市场部", "职员");

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

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

        //测定人事部人数

department1.addStaffMember(st1);

department1.addStaffMember(st2);

department1.addStaffMember(st3);

System.out.println("人事部总共有"+department1.getStaffMemberNum());

department2.addStaffMember(st4);

department2.addStaffMember(st5);

department2.addStaffMember(st6);

System.out.println("市场部总共有"+department1.getStaffMemberNum());

}


}


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

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

2回答
好帮手慕小尤 2020-03-01 10:59:22

同学你好,1. 是的,数组长度可以同学自定义,不一定是200,

2. 是老师理解错误,给定长度是创建,不是初始化。给您的学习带来不便,深感抱歉!

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

好帮手慕小脸 2020-02-29 15:23:49

同学你好,代码中的问题如下:

    1、关于人数的储存和统计为什么会报错啊?

        因为同学并没有进行数组初始化。考虑到性能问题,建议在使用的时候进行初始化,只要做好正确的判断,是不会出现空指针异常的。具体修改如下:

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

    2、关于性别的设置,作业中要求,如果不符合规则,则设置成默认的值,同学关于性别并没有进行判断,建议同学补充完成。

    3、关于属性中职务和部门类型的设置

员工类中在描述所属部门类型及职务时,建议采用通过对象类型设置,而不是采String类型,通过对象化设置以便于在后续更好的获取部门及职务的相关信息。例如:

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

并且在带参构造中添加部门和职务类型的属性。

http://img1.sycdn.imooc.com//climg/5e5a10f209c2302213350424.jpghttp://img1.sycdn.imooc.com//climg/5e5a10df094ac89814200291.jpg

    4、职务类要定义在测试类中使用,如下所示:

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

定义6个部门对象修改如下:

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

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

  • 提问者 慕函数4736799 #1
    创建数组的时候将长度定为200应该是随机的吧,只要给一个值,随便什么值都可以吧。主要是创建一个数组让信息插到数组里,是不是啊
    2020-02-29 20:37:20
  • 提问者 慕函数4736799 #2
    给定长度不应该叫创建嘛,为什么叫初始化?
    2020-02-29 20:39:44
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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