//部門類
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類映射 “引用傳遞的實際應用”
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.