6.15 一对多映射转换
class Dept {// 部门类
private long deptno;
private String dname;
private String loc;
private Emp emps[];
public Dept(long 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;
}
public String getInfo(){
return "【部门信息】部门编号:" + this.deptno + ",部门名称:" + this.dname + ",部门位置:" + this.loc;
}
}
class Emp {// 雇员类
private long empno;
private String ename;
private String job;// 职位
private double sal;//工资
private double comm;// 雇员佣金
private Dept dept;
private Emp mgr;// 所属领导
public Emp(long empno,String ename,String job,double sal,double comm){
this.empno = empno;
this.ename = ename;
this.job = job;
this.sal = sal;
this.comm = comm;
}
public String getInfo(){
return "【雇员信息】编号:" + this.empno + ",姓名:" + this.ename + ",职位:" + this.job + ",工资:" + this.sal + ",佣金:" + this.comm;
}
public void setDept(Dept dept){//设置部门引用
this.dept = dept;
}
public void setMgr(Emp mgr){//设置领导引用
this.mgr = mgr;
}
public Dept getDept(){// 获取部门引用
return this.dept;
}
public Emp getMgr(){// 获取领导引用
return this.mgr;
}
}
public class HelloWorld {
public static void main(String[] args){
Dept dept = new Dept(10,"mldn教学部","北京");
Emp empA = new Emp(7369L,"SMITH","CLERK",800.00,0.0);
Emp empB = new Emp(7333L,"FORD","MANSGER",2800.00,0.0);
Emp empC = new Emp(7222L,"KING","PRESIDENT",3800.00,0.0);
empA.setDept(dept);
empB.setDept(dept);
empC.setDept(dept);
empA.setMgr(empB);
empB.setMgr(empC);
dept.setEmps(new Emp[]{empA,empB,empC});
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());
}
}
System.out.println("----------");
System.out.println(empB.getDept().getInfo());
System.out.println(empB.getMgr().getInfo());
}
}
// 任何的人类的产品都是可以拆分,而后进行重新组合,所以这样的设计在java中被称为合成设计模式;

相信坚持的力量,日复一日的习惯.

浙公网安备 33010602011771号