Java培训SE基础之对象关联

1. 什么是对象关联

   对象关联就是一个对象关联了另外一个对象, 前者拥有了后者, 是一种包含关系.

2. 为什么要关联对象

public void lesson(Computer com) { // 这个方法应该需要一台电脑才能上课

              System.out.println(“[” + this.name + “] 老师使用电脑[” + com.say() + “]在上课”);

       }

这个方法中老师对象要想上课, 需要通过参数传入一个对象. 方法结束后, 这个对象对于老师对象来说就会消失, 显然老师对象最好是应该完全拥有一个电脑对象, 这样再执行上课方法时,就不需要再传入对象, 而是使用自己拥有的对象, 甚至还可以再添加一些别的方法使用此对象

3. 如何关联对象

  在当前类中把要关联的对象作为属性即可.

  也可以在构造器中添加参数为关联的对象赋值, 也可以添加对应的get/set方法,用以处理这个关联的对象

先写被关联的类

public class Computer {      

       private double cpu;

       private int memory;      

       public Computer() {}      

       public Computer(double cpu, int memory) {

              this.cpu = cpu;

              this.memory = memory;

       }      

       public void setCpu(double cpu) {

              this.cpu = cpu;

       }      

       public double getCpu() {

              return cpu;

       }     

       public void setMemory(int memory) {

              this.memory = memory;

       }      

       public int getMemory() {

              return memory;

       }      

       public String say() {

              return “CPU:” + cpu + “GHz, 内存:” + memory + “G”;

       }      

}

在Teacher类中关联Computer类的对象

public class Teacher {     

       private String name;

       private int age = 30;

       private String gender = “女”;

    // 对象关联, 把被关联的对象声明成属性

    private Computer computer;     

    // 可以通过构造器完成对关联对象的初始化

       public Teacher(String name, int age, String gender, Computer computer) {

              this.name = name;

              this.age = age;

              this.gender = gender;

        this.computer = computer;

       }

// 同时应该再提供相应的get/set方法

public void setComputer(Computer computer) {

    this.computer = computer;

}

public Computer getComputer() {

    return computer;

}     

       public void setName(String name) {

              this.name = name;

       }   

       public String getName() {

              return name;

       }     

       public void setAge(int age) {

              this.age = age;

       }     

       public int getAge() {

              return age;

       }      

       public void setGender(String gender) {

              this.gender = gender;

       }      

       public String getGender() {

              return gender;

       }   

    // 在上课方法中, 不必再在每次调用时传参了.

       public void lesson() {

              System.out.println(“[” + this.name + “] 老师使用电脑[” + computer.say() + “]在上课”);

       }     

       public String say() {

              return “姓名:” + this.name + “,年龄:” + this.age + “,性别:” + this.gender;

       }

}

 

public class TeacherTest {     

       public static void main(String[] args) {

Computer com = new Computer(3.5, 4); // 要关联的对象先创建好

              Teacher t = new Teacher(“李四”, 25, “女”, com); // 通过构造器完成对象关联

              t.lesson(); // 通过实参传递对象

        // 以上代码打印输出为”[李四] 老师使用电脑[CPU:3.5GHz,内存:4G]在上课”

       }   

}

4. 对象关联的作用

   对象关联的作用非常广泛, 当一个类完成某种功能时, 有的时候如果有现成的其他对象可以直接使用, 并且在本类中要多次多方法中使用同一个功能时, 对象关联更显得必要. 这样使得对象之间的关系更加紧密.

想要了解跟多关于Java培训课程内容欢迎关注尚硅谷Java培训,尚硅谷除了这些技术文章外还有免费的高质量Java培训训课程视频供广大学员下载学习


上一篇:
下一篇:
关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
电话:010-56253825
邮箱:info@atguigu.com
地址:北京市昌平区宏福科技园综合楼6层(北京校区)

 深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)