public class Swater{
public static void main(String []args){
Print print = new Print();
print.out();
}
}
//打印类
class Print{
public void out(){
Department dep1 = new Department(122,"技术部","开发工程师");//第一个部门
Department dep2 = new Department(123,"运维部","Hadoop工程师");//第二个部门
Department dep3 = new Department(124,"人事部","会计师");//第三个部门
Employee e1 = new Employee(001,"张三",6000.0);//第一个员工
Employee e2 = new Employee(002,"李四",7000.0);//第二个员工
Employee e3 = new Employee(003,"王五",10000.0);//第二个员工
e1.setLeader(e2);//雇员与领导
e2.setLeader(e3);//雇员与领导
e1.setLeader(e3);//雇员与领导
e1.setDepartment(dep1);//雇员与部门
e2.setDepartment(dep2);//雇员与部门
e3.setDepartment(dep3);//雇员与部门
//根据部门找到所有的雇员以及每个雇员的领导信息
dep1.setEmployee(new Employee[]{e1,e2});//部门与雇员
dep2.setEmployee(new Employee[]{e3,e2});//部门与雇员
dep3.setEmployee(new Employee[]{e1,e2,e3});//部门与雇员
System.out.print(e1.getInfo());//通过雇员1找到部门、领导 的信息
System.out.print("===部门==领导====\n");
System.out.print(e1.getLeader().getInfo());
System.out.print(e1.getDepartment().getInfo());
System.out.println();
System.out.print(e2.getInfo());//通过雇员2找到部门、领导 的信息
System.out.print("===部门==领导====\n");
System.out.print(e2.getLeader().getInfo());
System.out.print(e2.getDepartment().getInfo());
System.out.println();
System.out.print(e3.getInfo());//通过雇员3找到部门的信息
System.out.print("===部门====\n");
System.out.print(e3.getDepartment().getInfo());
System.out.println();
System.out.print("--根据部门找到所有的雇员以及每个雇员的领导信息-\n");
System.out.print("------------------------------\n");
System.out.println(dep1.getInfo()) ;
for(int i=0;i<dep1.getEmployee().length;i++){
System.out.print("|-"+dep1.getEmployee()[i].getInfo()+"");
if(dep1.getEmployee()[i].getLeader()!=null){
System.out.print("|-"+dep1.getEmployee()[i].getLeader().getInfo());
}
}
System.out.print("--根据部门找到所有的雇员以及每个雇员的领导信息-\n");
System.out.print("------------------------------\n");
System.out.println(dep2.getInfo()) ;
for(int j=0;j<dep2.getEmployee().length;j++){
System.out.print("|-"+dep1.getEmployee()[j].getInfo()+"");
if(dep2.getEmployee()[j].getLeader()!=null){
System.out.print("|-"+dep2.getEmployee()[j].getLeader().getInfo());
}
}
System.out.print("--根据部门找到所有的雇员以及每个雇员的领导信息-\n");
System.out.print("------------------------------\n");
System.out.println(dep3.getInfo()) ;
for(int k=0;k<dep3.getEmployee().length;k++){
System.out.print("|-"+dep3.getEmployee()[k].getInfo()+"");
if(dep3.getEmployee()[k].getLeader()!=null){
System.out.print("|-"+dep3.getEmployee()[k].getLeader().getInfo());
}
}
}
}
//部门 类
class Department{
private int did;//部门编号
private String dname;//部门名字
private String dposition;//职位
private Employee []employee;//多个雇员
public Department(){
//无参构造方法
}
public Department(int did,String dname,String dposition){
this.did=did;
this.dname=dname;
this.dposition=dposition;
}
//部门下的雇员
public void setEmployee(Employee[] employee){
this.employee=employee;
}
public Employee[] getEmployee(){
return this.employee;
}
public String getInfo(){
return "部门编号-"+did+"\n部门-"+dname+"\n职位-"+dposition+"\n";
}
}
//员工类
class Employee{
private int id;//工号
private String name;//姓名
private double salary;//薪水
private Department department;//雇员对应部门
private Employee Leader;
public Employee(){
//无参构造方法
}
public Employee(int id,String name,double salary){
this.id = id;
this.name=name;
this.salary=salary;
}
//雇员的部门
public void setDepartment(Department department){
this.department=department;
}
public Department getDepartment(){
return this.department;
}
//雇员的领导
public void setLeader(Employee Leader){
this.Leader=Leader;
}
public Employee getLeader(){
return this.Leader;
}
public String getInfo(){
return "雇员编号-"+id+"\n雇员姓名-"+name+"\n雇员薪水-"+" "+salary+"\n";
}
}