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中被称为合成设计模式;
相信坚持的力量,日复一日的习惯.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)