6/23作业:类之间关系

来源:互联网 发布:caffe model zoo 编辑:程序博客网 时间:2024/05/21 18:44

类之间关系

---关联关系

---依赖关系

---继承关系

---实现关系(本质也是继承关系)

1.关联关系

对象和对象之间的连接。在Java中,关联关系的代码表现形式为一个类做为另一个类的属性类型存在。

“有”的关系:”has-a”。

 

关联关系分为单向关联和双向关联  

单向关联: A类关联B类。  

双向关联:A类关联B,B类关联A;

 

public class Phone {

      private  Person   per;

     }

public  class Person {

private Phone phone;

}

 

关联关系的多重性

一对一关联:一个学生,只能在一个班级里学习。

  :

    public class Classes{

       private Student cla;//班级

     }

    public  class Student{

     }

一对多关联:一个学生,可以参加多个班级学习。

解决一对多的关联的方案

  集合

   数组

 

 

 

解决一对多的关联的方案

集合

例:

    public class Classes{     

     }

    public  class Student{

    private List Classess

    }

数组

例:

    public class Classes{     

    

    }

    public  class Student{

    private Classes[] Classess

    

    }

 

关联关系的特殊情况

如果两个互相关联的类中有整体和部分的关系,关联关系分为: 聚合和组合,主要区别在于生命周期不同。

聚合:

eg:

    public class Team{

      private Player  player;//运动员

     }

    public  class Player{

     }

创建Team对象时Player对象可以不创建,Player对象销毁时Team

 

 

 

 

组合:

eg:

public class Team{

     private Player p=new

                   Player();//队员

     }

     class Player{

     }

创建Team对象的时Player类同样创建,Team对象销毁时,Player对象也销毁

 

 

 

2.依赖关系的定义

依赖关系(use-a)

指一个类A使用到了另一个类B

依赖关系的特性

  这种关系是具有偶然性的、临时性的、非常弱的,但是类B的变化会影响到类A

 

 

依赖关系的代码实现

依赖具体表现

在代码层面,依赖关系表现为类B作为参数被类A在某个method

方法中使用

例:

   public  class Person {

   public void travel(Bus bus){

   }

   }

 

 

 

3.依赖与关联的区别
关联是HAS”关系,依赖是“USE”关系

A类关联B类,指的是B类对象作为A类的属性存在,称为“has”关系。

A类依赖B类,指的是B的对象作为A类的方法参数存在,称为“use”关系。

 

生命周期不同

如果A类关联B类,那么创建A类的对象时实例化B类的对象,直到A类对象被销毁,所关联的B类对象也被销毁。即只要A类对象存在,B类对象就存在。

如果A类依赖B类,那么只有当A类对象调用到相应方法时,B类对象才被临时创建,方法执行结束,B类对象即被回收,A类和B类之间的依赖关系是一种瞬时的关系。

原创粉丝点击