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
本文介绍了面向对象编程中的两种重要关系:类usea(使用另一个类的对象作为方法参数)和类hasa(包含另一个类的对象作为属性)。通过实例展示了在雇员类(Emp)中如何包含部门类(Dept)对象,以及部门类如何包含雇员类对象的一对一和一对多关系。这些例子展示了如何在实际编程中实现类之间的关联和依赖,以提高代码的复用性和灵活性。
4206

被折叠的 条评论
为什么被折叠?



