老师,可以帮我看一下怎么改进吗?

老师,可以帮我看一下怎么改进吗?

package com.imooc.intro;
import com.imooc.intro.*;
public class Test {
 public static void main(String[] args) {
  Staff sta1=new Staff("张铭","S001",29,"男");
  System.out.println(sta1.introduction());
  Job jobA=new Job("P001","人事部经理");
  System.out.println("职务:"+jobA);
 }
}

package com.imooc.intro;
    /**
      *   部门类
      * @author me
      *
      */
    public class Department {
 //成员属性:部门编号、部门名称、员工数组、员工人数
 private String departmentNo;
 private String departmentName;
 private Staff[] mystaff;

 //无参构造方法
 public Department() {
  
 }
 
 //带参构造方法
 int RSstaffNum=0;
 int SCstaffNum=0;
 
 public Department(String departmentNo,String departmentName,Staff[] mystaff){
  this.setDepartmentNo(departmentNo);
  this.setDepartmentName(departmentName);
  this.setMystaff(mystaff);
 }
 public void setDepartmentName(String departmentName) {
  this.departmentName=departmentName;
 }
 public String getDepartmentName() {
  return departmentName;
 }
 
 public void setDepartmentNo(String departmentNo) {
  this.departmentNo=departmentNo;
 }
 public String getDepartmentNo() {
  return departmentNo;
 }
 public Staff[] getMystaff() {
  if(this.mystaff==null)
   this.mystaff=new Staff[10];
  return mystaff;
 }
 public void setMystaff(Staff[] mystaff) {
  this.mystaff = mystaff;
 }
 
 public void addstaff(Staff mystaff) {
  int i=0;
  for(i=0;i<this.getMystaff().length;i++) {
   if(this.getMystaff()[i]==null) {
    this.getMystaff()[i]=mystaff;
    break;
   }
  }
  }
 public void countStaffNum(Staff mystaff) {
  int i=0;
  for(i=0;i<this.getMystaff().length;i++) {
   if(departmentName=="人事部") {
    RSstaffNum=RSstaffNum+1;
   }
   else {
    SCstaffNum=SCstaffNum+1;
   }
  }
 }
 
 
}

package com.imooc.intro;
public class Job {
 //成员属性:职务编号、职务名称
 private String jobNo;
 private String jobName;
 
 //无参构造方法
 public Job() {
  
 }
  
 public String getJobNo() {
  return jobNo;
 }
 public void setJobNo(String jobNo) {
  this.jobNo = jobNo;
 }
 public String getJobName() {
  return jobName;
 }
 public void setJobName(String jobName) {
  this.jobName = jobName;
 }
 //带参构造方法
    public Job(String jobNo,String jobName) {
  this.setJobNo(jobNo);
  this.setJobName(jobName);
 }
}

package com.imooc.intro;
public class Staff {
 //成员属性:员工姓名、工号、年龄、性别、所属部门、职务信息
 private String staffName;
 private String staffNo;
 private int staffage;
 private String staffsex;
 
 //无参构造方法
 public Staff() {
  
 }
 
 //带参构造方法
    public Staff(String staffName,String staffNo,int staffage,String staffsex) {
     this.setStaffName(staffName);
     this.setStaffNo(staffNo);
     this.setStaffage(staffage);
     this.setStaffsex(staffsex);
 }
 public String getStaffName() {
  return staffName;
 }
 public void setStaffName(String staffName) {
  this.staffName = staffName;
 }
 public String getStaffNo() {
  return staffNo;
 }
 public void setStaffNo(String staffNo) {
  this.staffNo = staffNo;
 }
 public int getStaffage() {
  return staffage;
 }
 public void setStaffage(int staffage) {
  if(this.staffage<18&&this.staffage>65) {
   this.staffage=18;
  }else {
  this.staffage = staffage;
  }
 }
 public String getStaffsex() {
  return staffsex;
 }
 public void setStaffsex(String staffsex) {
  if(this.staffsex!="男"&&this.staffsex!="女") {
   this.staffsex="男";
  }else {
  this.staffsex = staffsex;
  }
 }
 
 public String introduction() {
  String sta="\n姓名:"+this.getStaffName()+"\n工号:"+this.getStaffNo()+"\n性别:"+this.getStaffsex()+"\n年龄:"+this.getStaffage();
  return sta;
 }
}


正在回答

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

2回答

同学你好,1、根据题目要求,员工类--能够描述员工姓名、工号、年龄、性别、所属部门、职务信息。建议在员工类中添加部门与职务类的成员属性。

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

注意修改构造方法与get/set方法,在introduction方法中添加职务信息。

    2、因为staffsex时String类型的数据,建议在判断比较时使用equals方法

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

    3、在部门中,统计部门中的员工个数的变量,只需要设置一个就可以,而具体是市场部还是人事部,是通过部门类的对象来表示的,如果是市场部的对象,那么添加并统计的就是市场部的人数,同样如果是人事部的对象,添加并统计的就是人事部的人数。

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

    4、在向部门添加员工时直接统计数量,例如:

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

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

  • weixin_慕侠0167486 提问者 #1
    关于统计市场部和人事部的那部分还是不懂,一个变量可以存放两个信息吗?
    2020-02-04 16:19:12
好帮手慕小班 2020-02-04 16:39:07

同学你好,并不是一个变量存放两个信息,而是每实例化一个部门对象,就是在内存中开辟一块空间,表示这个对象,通过调用添加员工的方法,改变这个部门对象中的员工数组和员工人数的属性值,比如:

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

通过人事部的部门对象,只能修改人事部对象中的员工数组、人数等属性,创建两个对象,每次改变成员属性是改变不同对象的成员属性。

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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