//部门类
class Dept{
private int deptno;//部门编号
private String dname;//部门名称
private String loc;//部门位置
private Emp emps[];//“引用关系” 多个雇员,描述多这个概念应该使用对象数组进行完成
//明确定义一个无参构造
public Dept(){
}
public Dept(int deptno,String dname,String loc){//有参构造
this.deptno = deptno;
this.dname = dname;
this.loc = loc;
}
//setter方法
public void setDeptno(int d){
this.deptno = d;
}
public void setDname(String n){
this.dname = n;
}
public void setLoc(String l){
this.loc = l;
}
//对象数组的setter方法
public void setEmp(Emp[] e){
this.emps = e ;
}
//getter方法
public int getDeptno(){
return deptno;
}
public String getDname(){
return dname;
}
public String getLoc(){
return loc;
}
//对象数组的getter方法
public Emp[] getEmp(){
return emps;
}
//取得完整信息
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(){//无参构造
}
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方法
public void setEmpno(int e){
this.empno = e;
}
public void setEname(String n){
this.ename = n ;
}
public void setJob(String j){
this.job = j ;
}
public void setSal(double s){
this.sal = s ;
}
public void setComm(double c){
this.comm = c ;
}
public void setMgr(Emp m){
this.mgr = m;
}
public void setDept(Dept d){
this.dept = d;
}
//getter方法
public int getEmpno(){
return empno;
}
public String getEname(){
return ename;
}
public String getJbo(){
return job;
}
public double getSal(){
return sal;
}
public double getComm(){
return comm;
}
public Emp getMgr(){
return mgr;
}
public Dept getDept(){
return dept;
}
public String getInfo(){//取得完整信息
return "雇员编号:" + this.empno + ",姓名:" + this.ename + ",职位:" + this.job + ",工资:" + this.sal + ",佣金:" + this.comm ;
}
}
//测试类,设置数据并取出
public class TestDemo {
public static void main(String[] args) {
// 产生各自的独立对象,设置数据
Dept dept = new Dept(10,"ACCOUNTING","New York");
Emp ea = new Emp(1234,"Yiyao","CLERK",900.0,0.0);
Emp eb = new Emp(1235,"Acan", "MANAGER",4000.0,9.0);
Emp ec = new Emp(1236,"Dramatic","PRESIDENT",9000.0,80.0);
//设置雇员和领导关系
ea.setMgr(eb);
eb.setMgr(ec);
//设置雇员和部门关系
ea.setDept(dept);
eb.setDept(dept);
ec.setDept(dept);
//部门与雇员
dept.setEmp(new Emp[]{ea,eb,ec});
//取得数据
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.getEmp().length; x++){
System.out.println("\t|-" + dept.getEmp()[x].getInfo());
if(dept.getEmp()[x].getMgr() != null){
System.out.println("\t\t|-" + dept.getEmp()[x].getMgr().getInfo());
}
}
}
}
数据表和简单的Java类映射 “引用传递的实际应用”
猜你喜欢
转载自blog.csdn.net/guohaocan/article/details/81363158
今日推荐
周排行