1 public class Newbegin{
2 public static void main(String args[]) {
3 //第一步:设置类对象间的关系
4 //1.分别创建各自类的实例化对象,
5 Dept dept=new Dept(10,"ACCOUNTING","NEW YORK");
6 Emp ea=new Emp(7369,"SMITH","CLERY",800.0,0.0);
7 Emp eb=new Emp(7566,"ALLEN","MANAGER",2450.0,0.0);
8 Emp ec=new Emp(7839,"KING","PRESIDENT",5000.0,0.0);
9 //2.设置雇员领导的关系!
10 ea.setMgr(eb);
11 eb.setMgr(ec);//ec对象没有领导,因为他是头
12 //3.设置雇员和部门的关系
13 ea.setDept(dept);
14 eb.setDept(dept);
15 eb.setDept(dept);
16 //4.设置部门和雇员的关系
17 dept.setEmps(new Emp[] {ea,eb,ec});
18 //第二步:数据的取得
19 //5.一个部门有多个雇员,并且可以输出一个部门的完整信息(包括雇员信息)
20 System.out.println(dept.getInfo());//输出部分信息
21 //部门中的所有雇员
22 //雇员的领导
23 for(int x=0;x<dept.getEmps().length;x++){
24 System.out.println(" -"+dept.getEmps()[x].getInfo());
25 if (dept.getEmps()[x].getMgr()!=null)
26 {
27 System.out.println(" |-"+dept.getEmps()[x].getMgr().getInfo());
28 }
29 }
30 System.out.println("-----------");
31 //可以根据一个雇员找到对应的领导信息和所在部门的信息
32 System.out.println(eb.getInfo());
33 if(eb.getMgr()!=null){
34 System.out.println(" |-"+eb.getMgr().getInfo());
35 }
36 if(eb.getDept()!=null){
37 System.out.println(eb.getDept().getInfo());
38 }
39 }
40 }
41 class Emp
42 {
43 private int empno;
44 private String ename;
45 private String job;
46 private double sal;
47 private double comm;
48 private Emp mgr;//描述雇员领导!
49 private Dept dept;//描述雇员所在的部门!
50 public Emp(){}
51 public Emp(int empno,String ename,String job,double sal,double comm){
52 this.empno=empno;
53 this.ename=ename;
54 this.job=job;
55 this.sal=sal;
56 this.comm=comm;
57 }
58 public void setMgr(Emp mgr){
59 this.mgr=mgr;
60 }
61 public Emp getMgr(){
62 return this.mgr;
63 }
64 public void setDept(Dept dept){
65 this.dept=dept;
66 }
67 public Dept getDept(){
68 return this.dept;
69 }
70 public String getInfo(){
71 return "【EMP】empno+"+this.empno+
72 ",ename=" +this.ename+
73 ",job="+this.job+
74 ",sal="+this.sal+
75 ",comm="+this.comm;
76 }
77 }
78 class Dept
79 {
80 private int deptno;
81 private String dname;
82 private String loc;
83 private Emp[] emps;
84 public Dept(){}
85 public Dept(int deptno,String dname,String loc){
86 this.deptno=deptno;
87 this.dname=dname;
88 this.loc=loc;
89 }
90 public void setEmps(Emp[] emps){
91 this.emps=emps;
92 }
93 public Emp[] getEmps(){
94 return this.emps;
95 }
96 public String getInfo(){
97 return "【DEPT】deptno="+deptno+",dnema="+dname+",loc="+loc;
98 }
99 }