关于人数的储存和统计为什么会报错啊。还有,我的职务类好像用不到
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
同学你好,代码中的问题如下:
1、关于人数的储存和统计为什么会报错啊?
因为同学并没有进行数组初始化。考虑到性能问题,建议在使用的时候进行初始化,只要做好正确的判断,是不会出现空指针异常的。具体修改如下:
2、关于性别的设置,作业中要求,如果不符合规则,则设置成默认的值,同学关于性别并没有进行判断,建议同学补充完成。
3、关于属性中职务和部门类型的设置
员工类中在描述所属部门类型及职务时,建议采用通过对象类型设置,而不是采String类型,通过对象化设置以便于在后续更好的获取部门及职务的相关信息。例如:
并且在带参构造中添加部门和职务类型的属性。
4、职务类要定义在测试类中使用,如下所示:
定义6个部门对象修改如下:
如果我的回答解决了的你的疑惑,请采纳,祝学习愉快~
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星