2021-04-24

范例3-87代码片段《第一行代码Java》

在这里插入代码片

class Dept {
   private int deptno;					// 部门编号
   private String dname;					// 部门名称
   private String loc;						// 部门位置
   private Emp emps [] ;					// 多个雇员 
   public Dept(int deptno, String dname, String loc) {
      this.deptno = deptno;
      this.dname = dname;
      this.loc = loc;
   }
   public void setEmps(Emp []emps){
	   this.emps = emps ;
   }
   
   public Emp[] getEmps(){
	   return this.emps ;
   }
   
   // setter、getter、无参构造略
   public String getInfo() {
      return "部门编号:" + this.deptno + ",名称:" + this.dname + ",位置:" + this.loc;
   }
}
class Emp {
   private int empno;						// 雇员编号
   private String ename;					// 雇员姓名
   private String job;						// 雇员职位
   private double sal;					// 基本工资
   private double comm;					// 佣金
   private Dept dept ;
   private Emp mgr; 					// 表示雇员对应的领导
   public Emp(int empno, String ename, String job, double sal, double comm) {
      this.empno = empno;
      this.ename = ename;
      this.job = job;
      this.sal = sal;
      this.comm = comm;
   }
   // setter、getter、无参构造略
   public void  setMgr(Emp mgr){
	   this.mgr = mgr ;     //???
   }
   public Emp getMgr(){
	   return this.mgr;
   }
   
   public void  setDept(Dept dept){
	   this.dept = dept ;
   }
   public Dept getDept(){
	   return this.dept;
   }
   
   
   public String getInfo() {
      return "雇员编号:" + this.empno + ",姓名:" + this.ename + ",职位:" + this.job
             + ",工资:" + this.sal + ",佣金:" + this.comm;
   }
}




public class object210418 {
    public static void main(String args[]) {
        // 第一步:根据表结构描述设置数据
        // 1.产生各自的独立对象
        Dept dept = new Dept(10,"ACCOUNTING","New York") ;		// 部门信息
		Dept dept2 = new Dept(20,"Sales","Beijing") ;
        Emp ea = new Emp(7369,"SMITH","CLERK",800.0,0.0) ;		// 雇员信息
        Emp eb = new Emp(7902,"FORD","MANAGER",2450.0,0.0) ;		// 雇员信息
        Emp ec = new Emp(7839,"KING","PRESIDENT",5000.0,0.0) ;	// 雇员信息
		Emp ed = new Emp(8000,"Founder","Founders",15000.0,0.0) ;
        // 2.设置雇员和领导关系
        ea.setMgr(eb) ;										// 设置雇员领导
        eb.setMgr(ec) ;										// 设置雇员领导
        // 3.设置雇员和部门关系
        ea.setDept(dept) ;										// 雇员与部门
        eb.setDept(dept) ;										// 雇员与部门
        ec.setDept(dept) ;										// 雇员与部门
		
        dept.setEmps(new Emp[]{ea,eb,ec}) ;						// 部门与雇员
		ed.setDept(dept2);                                      //程序存在的问题:只能通过数组设置雇员部门属性。
		
				
        // 第二步:根据表结构描述取得设置的数据
        System.out.println(ea.getInfo()) ;							// 取得雇员信息
        System.out.println("\t|- " + ea.getMgr().getInfo()) ;				// 取得雇员领导信息
        System.out.println("\t|- " + ea.getDept().getInfo()) ;				// 取得雇员部门信息
		
		System.out.println("------------------------------------");
        // 取得部门的完整信息,包括部门基础信息以及部门中的所有员工和每个员工的领导信息
        System.out.println(dept.getInfo()) ;							// 部门信息
		
        for (int x = 0 ; x < dept.getEmps().length ; x ++ ){
			System.out.println( "\t|-雇员信息: "  + dept.getEmps()[x].getInfo());
		   if (dept.getEmps()[x].getMgr() != null) {
			   System.out.println("\t\t|----雇员的领导: "  + dept.getEmps()[x].getMgr().getInfo());
		   }else{
			   System.out.println("\t\t|----未设置该雇员的直接领导 " );
		   }
        }
		
    }
}

运行结果

D:\Java>java object210418
雇员编号:7369,姓名:SMITH,职位:CLERK,工资:800.0,佣金:0.0
|- 雇员编号:7902,姓名:FORD,职位:MANAGER,工资:2450.0,佣金:0.0
|- 部门编号:10,名称:ACCOUNTING,位置:New York

部门编号:10,名称:ACCOUNTING,位置:New York
|-雇员信息: 雇员编号:7369,姓名:SMITH,职位:CLERK,工资:800.0,佣金:0.0
|----雇员的领导: 雇员编号:7902,姓名:FORD,职位:MANAGER,工资:2450.0,佣金:0.0
|-雇员信息: 雇员编号:7902,姓名:FORD,职位:MANAGER,工资:2450.0,佣金:0.0
|----雇员的领导: 雇员编号:7839,姓名:KING,职位:PRESIDENT,工资:5000.0,佣金:0.0
|-雇员信息: 雇员编号:7839,姓名:KING,职位:PRESIDENT,工资:5000.0,佣金:0.0
|----未设置该雇员的直接领导

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值