老师好,统计部门人数和空指针的问题。
老师你好,统计部门人数和空指针,调了很久实在做不出来,请问下这两个怎么做呢?哭戚戚
另外我的代码还有什么地方需要修改呢
package com.fiona.javaObjectOriented.day12office;
/**
* 部门类
*/
public class BuMen {
// 成员属性:部门编号、部门名称、员工数组、统计部门中的员工个数(统计变量)
private String bmId;
private String bmName;
private YuanGong [] myYuanGong;
private int bmNum;
//无参构造
public BuMen(){ }
//带参构造
public BuMen(String bmId, String bmName) {
this.setBmId(bmId);
this.setBmName(bmName);
}
public String getBmId() {
return bmId;
}
public void setBmId(String bmId) {
this.bmId = bmId;
}
public String getBmName() {
return bmName;
}
public void setBmName(String bmName) {
this.bmName = bmName;
}
public YuanGong[] getMyYuanGong() {
return myYuanGong;
}
public void setMyYuanGong(YuanGong[] myYuanGong) {
this.myYuanGong = myYuanGong;
}
public int getBmNum() {
return bmNum;
}
public void setBmNum(int bmNum) {
this.bmNum = bmNum;
}
//统计该部门员工个数
public void addNum(YuanGong yg){
for(int i=0;i<this.getMyYuanGong().length;i++){
if(this.getMyYuanGong()[i]==null){
this.getMyYuanGong()[i]=yg;
this.bmNum=i+1;
return;
}
}
}
}package com.fiona.javaObjectOriented.day12office;
/**
* 职务类
*/
public class ZhiWu {
//职务编号、职务名称
private String zwId;
private String zwName;
//无参构造方法
public ZhiWu(){ }
//有参构造方法:包含职务编号、职务名称
public ZhiWu(String zwId, String zwName) {
this.setZwId(zwId);
this.setZwName(zwName);
}
public String getZwId() {
return zwId;
}
public void setZwId(String zwId) {
this.zwId = zwId;
}
public String getZwName() {
return zwName;
}
public void setZwName(String zwName) {
this.zwName = zwName;
}
public String info(){
String str="职务信息如下:\n职务编号:"+this.getZwId()+"\n职务名称:"+this.getZwName();
return str;
}
}package com.fiona.javaObjectOriented.day12office;
/**
* 员工类:
*/
public class YuanGong {
//员工姓名、工号、年龄、性别、所属部门、职务信息
private String ygNmae;
private String ygID;
private int ygAge;
private String ygSex;
private BuMen ygbumen;
private ZhiWu ygzhiwu;
//无参构造方法
public YuanGong(){}
//有参构造方法:工姓名、工号、性别、年龄、部门信息、职务信息
public YuanGong(String ygNmae, String ygID, int ygAge, String ygSex,BuMen ygbumen,ZhiWu ygzhiwu) {
this.setYgNmae(ygNmae);
this.setYgID(ygID);
this.setYgAge(ygAge);
this.setYgSex(ygSex);
this.setYgbumen(ygbumen);
this.setYgzhiwu(ygzhiwu);
}
public String getYgNmae() {
return ygNmae;
}
public void setYgNmae(String ygNmae) {
this.ygNmae = ygNmae;
}
public String getYgID() {
return ygID;
}
public void setYgID(String ygID) {
this.ygID = ygID;
}
public int getYgAge(int ygAge) {
return ygAge;
}
//设定方法限定年龄只能是18--65之间,反之则设置默认为18岁
public void setYgAge(int ygAge) {
if(ygAge<18||ygAge>65)
this.ygAge=18;
else
this.ygAge=ygAge;
}
public String getYgSex() {
return ygSex;
}
//设定方法限定性别只能是“男”或者“女”,反之则设置默认为"男"
public void setYgSex(String ygSex) {
if(ygSex=="男"||ygSex=="女")
this.ygSex = ygSex;
else
this.ygSex="男";
}
public int getYgAge() {
return ygAge;
}
public BuMen getYgbumen() {
return ygbumen;
}
public void setYgbumen(BuMen ygbumen) {
this.ygbumen = ygbumen;
}
public ZhiWu getYgzhiwu() {
return ygzhiwu;
}
public void setYgzhiwu(ZhiWu ygzhiwu) {
this.ygzhiwu = ygzhiwu;
}
//员工自我介绍的方法,将员工信息作为字符串返回
public String info( ){
String str = "姓名:"+this.getYgNmae()+
"\n工号:"+this.ygID+
"\n性别:" +this.ygSex+
"\n年龄:"+this.ygAge+
"\n职务:"+this.ygbumen.getBmName()+this.ygzhiwu.getZwName();
return str;
}
}package com.fiona.javaObjectOriented.day12officeTest;
import com.fiona.javaObjectOriented.day12office.BuMen;
import com.fiona.javaObjectOriented.day12office.YuanGong;
import com.fiona.javaObjectOriented.day12office.ZhiWu;
public class Test {
public static void main(String[] args) {
//初始化部门
BuMen bm1=new BuMen("D001","人事部");
BuMen bm2=new BuMen("D002","市场部");
//初始化职务
ZhiWu zw1 = new ZhiWu("P001","经理");
ZhiWu zw2 = new ZhiWu("P002","助理");
ZhiWu zw3 = new ZhiWu("P003","职员");
//初始化员工
YuanGong yg1 = new YuanGong("张铭","S001",29,"男",bm1,zw1);
YuanGong yg2 = new YuanGong("李艾爱","S002",21,"女",bm1,zw2);
YuanGong yg3 = new YuanGong("孙超","S003",29,"男",bm1,zw3);
YuanGong yg4 = new YuanGong("张美美","S004",26,"女",bm2,zw3);
YuanGong yg5 = new YuanGong("蓝迪","S005",37,"男",bm2,zw1);
YuanGong yg6 = new YuanGong("米莉","S006",24,"女",bm2,zw3);
//输出员工信息
System.out.println(yg1.info()+"\n==============================");
System.out.println(yg2.info()+"\n==============================");
System.out.println(yg3.info()+"\n==============================");
System.out.println(yg4.info()+"\n==============================");
System.out.println(yg5.info()+"\n==============================");
System.out.println(yg6.info()+"\n==============================");
//人事部添加员工
bm1.addNum(yg1);
bm1.addNum(yg2);
bm1.addNum(yg3);
System.out.println(bm1.getBmName()+"总共有"+bm1.getBmNum()+"名员工");
//市场部添加员工
bm1.addNum(yg4);
bm1.addNum(yg4);
bm1.addNum(yg4);
System.out.println(bm2.getBmName()+"总共有"+bm2.getBmNum()+"名员工");
}
}24
收起
正在回答 回答被采纳积分+1
1回答
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程




恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星