1、类 use a 类
在一个类的方法的参数中,用的是另一个类的对象
如(参考前文《多态》):
public class Master {
public void cure(Pet pet) {
pet.toHospital();
}
}
2、类 has a 类
在一个类中定义另一个类的对象或对象数组,作为当前类的属性
(1)一对一
在雇员类中定义部门类的对象作为属性
public static void main(String[] args) {
Dept dept1=new Dept("001","研发部");
Emp emp1=new Emp("1001","tom",7000,dept1);
System.out.println(emp1.getDept().getDeptName());
}
//Dept.java文件
public class Dept {
private String deptId;
private String deptName;
getter+setter
}
//Emp.java文件
public class Emp {
private String empNo;
private String empName;
private double salary;
private Dept dept;
getter+setter
}
//输出结果:
研发部
(2)一对多
在部门类中定义雇员类的数组作为属性
如:
public static void main(String[] args) {
Emp[] emps=new Emp[3];
emps[0]=new Emp("1001","tom",7000);
emps[1]=new Emp("1002","jack",8000);
emps[2]=new Emp("1003","amy",6000);
Dept dept1=new Dept("001","研发部");
dept1.setEmps(emps);
System.out.println(dept1.getDeptName());
for(int i=0;i<dept1.getEmps().length;i++) {
System.out.println(dept1.getEmps()[i].getEmpName()+"\t"+dept1.getEmps()[i].getSalary());
}
}
//Emp.java文件
public class Emp {
private String empNo;
private String empName;
private double salary;
getter+setter
}
//Dept.java文件
public class Dept {
private String deptId;
private String deptName;
private Emp[] emps;
getter+setter
}
//输出结果:
研发部
tom 7000.0
jack 8000.0
amy 6000.0