private int deptno;
private String deptname;
private String loc;
private Emp[] emp;//所有雇员,因为一个部门有很多个员工
public Emp[] getEmp() {
return emp;
}
public void setEmp(Emp[] emp) {
this.emp = emp;
}
public Dept()
{}
public Dept(int deptno,String deptname,String loc)
{
this.deptno=deptno;
this.deptname=deptname;
this.loc=loc;
}
public String getInfo()
{
String result="部门号是"+this.deptno+",部门名是"+this.deptname+",地址是"+this.loc;
return result;
}
}
public class Emp {
private int empno;
private String ename;
private String job;
private double sal;
private double comm;
private Emp mgr;//描述雇员领导
private Dept dept;//描述雇员所在部门,一个员工只在一个部门中
public Emp getMgr() {
return mgr;
}
public void setMgr(Emp mgr) {
this.mgr = mgr;
}
public Dept getDept() {
return dept;
}
public void setDept(Dept dept) {
this.dept = dept;
}
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;
}
public String getInfo()
{String result="序号是"+this.empno+",名字是"+this.ename+",工作是"+this.job+",工资是"+this.sal+",comm"+this.comm;
return result;
}
}
public static void main(String[] args) {
/**
* 1设置类对象之间的关系
* 2进行数据的取得
*/
//第一步:分别创建各自类的对象实例
Dept d=new Dept(1,"java研发部","青岛");
Emp e=new Emp(1,"哈哈","java开发工程师",8000,0.0);
Emp e1=new Emp(2,"安红豆","。net",5900,1.0);
Emp e2=new Emp(3,"安红2豆","c#",5782,2.0);
//设置雇员的领导关系
e.setMgr(e1);
e1.setMgr(e2);//e2对象没有领导,因为他是头。
//设置雇员和部门的关系
e.setDept(d);
e1.setDept(d);
e2.setDept(d);
//设置部门和雇员的关系
d.setEmp(new Emp[] {e,e1,e2});
/*
*第二部:进行数据的取得
*(1)一个部门有多个雇员,可以输出一个部门的完整信息,包括雇员的信息
*/
System.out.println(d.getInfo());//输出部门信息
for(int x=0;x<d.getEmp().length;x++)
{
System.out.println("\t"+d.getEmp()[x].getInfo());
if(d.getEmp()[x].getMgr()!=null)
{
System.out.println("\t\t"+d.getEmp()[x].getMgr().getInfo());
}
}
System.out.println("=====================");
/*
* 根据一个雇员找到雇员对应的领导信息和雇员所在部门的信息
*/
System.out.println(e.getInfo());
//如果雇员有领导
if(e.getMgr()!=null)
{
System.out.println("\t其领导是"+e.getMgr().getInfo());
}
//如果雇员有部门
if(e.getDept()!=null)
{
System.out.println("\t其部门是"+e.getDept().getInfo());
}
}
}
结果:
部门号是1,部门名是java研发部,地址是青岛
序号是1,名字是哈哈,工作是java开发工程师,工资是8000.0,comm0.0
序号是2,名字是安红豆,工作是。net,工资是5900.0,comm1.0
序号是2,名字是安红豆,工作是。net,工资是5900.0,comm1.0
序号是3,名字是安红2豆,工作是c#,工资是5782.0,comm2.0
序号是3,名字是安红2豆,工作是c#,工资是5782.0,comm2.0
=====================
序号是1,名字是哈哈,工作是java开发工程师,工资是8000.0,comm0.0
其领导是序号是2,名字是安红豆,工作是。net,工资是5900.0,comm1.0
其部门是部门号是1,部门名是java研发部,地址是青岛