3-8作业中输出语句问题

3-8作业中输出语句问题

package com.imcoo.demo;
/***
 * 创建 部门类
 * @author Administrator
 *   描述部门编号、部门名称、获取所有该部门员工信息
 *   统计该部门员工个数
 */
public class Department {
     //成员属性:部门编号、部门名称丶该部门的员工信息
	 private String departmentnumb;
	 private String departmentname;
	 private staff[] mystaff;
	 private int staffNumber1;
	 private int staffNumber2;
	 
	 //无参构造
	public Department() {
		
	}

    public Department(String departmentname) {
    		
    	this.setDepartmentname(departmentname);
    	
	}
	
	
	// 带参构造,对全部属性就行赋值;
	
    public Department(String departmentname ,staff[] mystaff) {
    		
    	this.setDepartmentname(departmentname);
    	this.setMystaff(mystaff);
	}
	
	
	public String getDepartmentnumb() {
		return departmentnumb;
	}
	public void setDepartmentnumb(String departmentnumb) {
		this.departmentnumb = departmentnumb;
	}
	public String getDepartmentname() {
		return departmentname;
	}
	public void setDepartmentname(String departmentname) {
		this.departmentname = departmentname;
	}
	/**
	 * 获取员工信息  , 如果保存员工信息的数组未被初始化,先进行初始化长度为100;
	 * @return 保存了员工信息的数组
	 */
	public staff[] getMystaff() {
		if(this.mystaff==null)
			this.mystaff=new staff[100];
		return mystaff;
	}
	public void setMystaff(staff[] mystaff) {
		this.mystaff = mystaff;
	}
	 

	public int getStaffNumber1() {
		return staffNumber1;
	}

	public void setStaffNumber1(int staffNumber1) {
		this.staffNumber1 = staffNumber1;
	}

	public int getStaffNumber2() {
		return staffNumber2;
	}

	public void setStaffNumber2(int staffNumber2) {
		this.staffNumber2 = staffNumber2;
	}

	public void  addstaff(staff sta) {
		
		/**
		 * 1丶 将员工保存到数组中;
		 * 2丶将人事部员工个数保存到staffNumber1
		 * 3丶将市场部员工个数保存到staffNumber2
		 */
		
		 for(int i=0;i<this.getMystaff().length;i++) {
			 if(this.getMystaff()[i]==null) {
			 this.getMystaff()[i]=sta;			 				
				 this.staffNumber1++;
				 this.staffNumber2++;
				 break;
			 }
				
			
			 
			 
			 
	 }

		 
		 
	 }	 
	
	
}






package com.imcoo.demo;
/**
 * 职务类 
 * @author Administrator
 *
 */

public class Job {

	//成员属性:职务名称;
   private	String  jobname;
   
        //无参构造
   public Job() {
		
		
	}
   
   // 带参构造
public Job(String jobname) {
	
	this.setJobname(jobname);
}

public String getJobname() {
	return jobname;
}

public void setJobname(String jobname) {
	this.jobname = jobname;
}


	
}








package com.imcoo.demo;
/**
 * 员工类 
 * @author 
 *
 */
public class staff 
{     
	
	//员工属性:员工姓名 , 工号,年龄,性别,所属部门,职务信息。
	private String staffname;
	
	private String  staffnumber;
	
	private  int  staffage;
	
	private String staffsex;
	private Department staffDepartment;   //新增对象属性:部门    ------>(把部门看成是员工具有的属性即为 :员工的部门)
 	private  Job  staffJob;  //新增对象属性:职务---------> (把职务看成是员工的属性即为:员工的职务)
 	
 	
 	//无参构造
	public staff() {
		
	}
	
	
	// 创建带参构造,对其员工所有属性就行赋值;

	public staff(String staffname, String staffnumber, String staffsex,int staffage,Department staffDepartment,Job  staffJob) 
	{
	  
	   this.setStaffname(staffname);
	   this.setStaffnumber(staffnumber);
	   this.setStaffsex(staffsex);
	   this.setStaffage(staffage);
	   this.setStaffDepartment(staffDepartment);
	   this.setStaffJob(staffJob);
		
	}

	public String getStaffname() {
		return staffname;
	}

	public void setStaffname(String staffname) {
		this.staffname = staffname;
	}

	public String getStaffnumber() {
		return staffnumber;
	}

	public void setStaffnumber(String staffnumber) {
		this.staffnumber = staffnumber;
	}

	public int getStaffage() {
		return staffage;
	}

	/**
	 *  给员工年龄赋值,限制为18--65岁之间,否则强制赋值为18岁;
	 * @param staffage
	 */
	public void setStaffage(int staffage) {
		
		if(staffage<18||staffage>65)
		{
			this.staffage=18;
		}
		
		else
		     this.staffage = staffage;
	}

	public String getStaffsex() {
		
		
		return staffsex;
	}

	
	/**
	 * 限制员工性别为 男或者女,否则强制赋值为男;
	 * @param staffsex
	 */
	public void setStaffsex(String staffsex) {
		
		if(staffsex.equals("男")||staffsex.equals("女"))
			{this.staffsex = staffsex;}
		else 
			this.staffsex="男";
		
	}
	
	public Job getStaffJob() {
		if(this.staffJob==null) {
			this.staffJob=new Job();	
			
		}
		return staffJob;
	}

	public void setStaffJob(Job staffJob) {
		this.staffJob = staffJob;
	}
	
	

	/**
	 * 获取部门对象,如果没有实例化,先进行实例化后再返回;
	 * @return 员工的部门对象信息;
	 */
	public Department getStaffDepartment() {
		
		if(this.staffDepartment==null)
			this.staffDepartment=new  Department();
		return staffDepartment;
	}

	
	
	
	public void setStaffDepartment(Department staffDepartment) {
		this.staffDepartment = staffDepartment;
	}

	

	/**
	 * 创建员工介绍的方法
	 * @return 员工介绍的信息,包括: 姓名,工号,性别,年龄,职务;
	 */
	
	

	
	public String Play() {
		
		
		String str= "员工信息如下:\n姓名:"+ this.getStaffname()+"\n工号:"+this.getStaffnumber()+"\n性别:"+this.getStaffsex()+"\n年龄:"+this.getStaffage()+"\n职务:"+this.getStaffDepartment().getDepartmentname()+this.getStaffJob().getJobname();
		
		return str ;
	}
	
	
	

}









package com.imcoo.test;
import com.imcoo.demo.Department;
import com.imcoo.demo.Job;
import com.imcoo.demo.staff;
public class TestDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Department  dep1=new Department("人事部");
		Job job1=new Job("经理");
		staff sta1= new staff("张铭","S001","男",29,dep1,job1);
		
		System.out.println(sta1.Play());
		System.out.println("====================================");
		
	
		Job job2=new Job("助理");
		staff sta2= new staff("李艾爱","S002","女",21,dep1,job1);
		System.out.println(sta2.Play());
		System.out.println("====================================");
		
		Job job3=new Job("职员");
		staff sta3= new staff("孙超","S004","男",29,dep1,job3);
		System.out.println(sta3.Play());
		System.out.println("====================================");
		Department  dep2=new Department("市场部");		
		staff sta4= new staff("张美美","S005","女",26,dep2,job3);
		System.out.println(sta4.Play());
		System.out.println("====================================");
		staff sta5= new staff("张蓝迪","S006","男",37,dep2,job1);
		System.out.println(sta5.Play());	
		staff sta6= new staff("米莉","S007","女",24,dep2,job3);
		System.out.println(sta6.Play());
		System.out.println("====================================");
		
		dep1.addstaff(sta1);
		dep1.addstaff(sta2);
		dep1.addstaff(sta3);
		dep2.addstaff(sta4);
		dep2.addstaff(sta5);
		dep2.addstaff(sta6);
		
		
		System.out.println(dep1.getDepartmentname()+"总共有"+dep1.getStaffNumber1()+"名员工");
		System.out.println(dep2.getDepartmentname()+"总共有"+dep2.getStaffNumber2()+"名员工");
	}

}

http://img1.sycdn.imooc.com/climg//59cb56490001fc4f05240911.jpg

正在回答

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

2回答

把staffNumber1和staffNumber2都去掉,只放一下staffNumber。90行那里只是staffNumber++。主方法改成System.out.println(dep1.getDepartmentname()+"总共有"+dep1.getStaffNumber()+"名员工");

System.out.println(dep2.getDepartmentname()+"总共有"+dep2.getStaffNumber()+"名员工");

  • 猪哥哥呀 提问者 #1
    懂了,谢谢老师,dep1中执行3次判断,dep2中执行3次判断。 我以为都是一起 6次 循环
    2017-09-27 20:41:13
提问者 猪哥哥呀 2017-09-27 15:46:13

虽然我的结果正确了,可是我这是分别输出2个部门各自的人数  我这写判断语句明显解释不通啊,老师这里到底该怎么写才能符合我的设计要求啊,我试过用判断输出是否equal("人事部")来决定到底是 staffnumber1 加1  还是 staffnumber2加1  但是这句判断没效果 都输出0;    求老师解释下 

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

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