首页 > 其他分享 >11第三章:【02】类与类之间的关系

11第三章:【02】类与类之间的关系

时间:2022-10-07 20:45:53浏览次数:58  
标签:11 02 第三章 关系 void IDCard class Person public

一、依赖关系(Dependence)

只要是在 类中用到了对方,那么它们之间就存在依赖关系。如果没有对象,连编译都通过不了。

Demo:

public class PersonServiceBean {
    //类
    private PersonDao personDao;

    public void save(Person person) {
    }

    public IDCard getIDCard(Integer personid) {
        return new IDCard();
    }

    public void modify() {
        Department department = new Department();
    }
}

public class PersonDao {}
public class Person {}
public class IDCard {}
public class Department {}

对应的类图:

小结:

  1. 类中用到了对方;
  2. 如果是类的成员属性
  3. 如果是方法的返回类型
  4. 是方法接收的参数类型
  5. 方法中使用到

二、泛化关系(Generalization)

泛化关系实际上就是继承关系,它是依赖关系的特例

Demo:

public class DaoSupport {
    public void save(Object entity){}
    public void delete(Object id){}
}

public class PersonServiceBean extends DaoSupport{

}

对应的类图:

小结:

  1. 泛化关系实际上就是继承关系
  2. 如果 A 类继承了 B 类,我们就说 A 和 B 存在泛化关系

三、实现关系(Implementation)

实现关系实际上就是 A 类实现 B 接口,它是依赖关系的特例

Demo:

public interface PersonService {

    public void delete(Integer id);
}

public class PersonServiceBean implements PersonService {
    @Override
    public void delete(Integer id) {
        System.out.println("delete..");
    }
}

对应的类图:

四、关联关系(Association)

关联关系实际上就是 类与类之间的联系,它是依赖关系的特例

关联具有导航性:即双向关系或单向关系。

关系具有多重性:如“1”(表示有且仅有一个),“0” (表示 0 个或者多个),“0,1”(表示 0 个或者一个),“n...m”(表示 n 到 m 个都可以),“m...*” (表示至少 m 个)。

Demo:

public class Person {
    private IDCard card;   //单向关系
    private Home home;  //双向关系
}

public class IDCard {}

public class Home {
    private Person person;
}

对应的类图:

五、聚合关系(Aggregation)

聚合关系表示的是 整体和部分的关系,整体与部分可以分开

聚合关系是关联关系的特例,所以它具有关联的导航性和多重性

如:一台电脑由键盘(keyboard)、显示器(monitor),鼠标等组成,组成电脑的各个配件是可以从电脑上分离出来的,使用带空心菱形的实线来表示。

Demo:

public class Computer {
    private Mouse mouse; //鼠标可以和computer分离
    private Moniter moniter;//显示器可以和Computer分离
    public void setMouse(Mouse mouse) {
        this.mouse = mouse;
    }
    public void setMoniter(Moniter moniter) {
        this.moniter = moniter;
    }
}

public class Moniter {}

public class Mouse {}

对应的类图:

六、组合关系(Composition)

如果像人和头部,心脏不可分离的,则升级为组合关系。

组合关系:也是整体与部分的关系,但是整体与部分不可以分开

案例:在程序中我们定义实体: Person 与 IDCard、 Head, 那么 Head 和 Person 就是组合, IDCard 和 Person 就是聚合。

但是如果在程序中 Person 实体中定义了对 IDCard 进行级联删除,即删除 Person 时连同 IDCard 一起删除, 那么 IDCard 和 Person 就是组合了。

Demo:

public class Person {
    private IDCard card; //聚合关系
    private Head head = new Head(); //组合关系
}

public class IDCard {}

public class Head {}

对应的类图:

Demo2:

public class Computer {
    /**鼠标可以和computer不能分离**/
    private Mouse mouse = new Mouse();
    /**显示器可以和Computer不能分离**/
    private Moniter moniter = new Moniter();
    public void setMouse(Mouse mouse) {
        this.mouse = mouse;
    }
    public void setMoniter(Moniter moniter) {
        this.moniter = moniter;
    }
}

public class Mouse {}

public class Moniter {}

对应的类图:

标签:11,02,第三章,关系,void,IDCard,class,Person,public
From: https://www.cnblogs.com/niujifei/p/16762620.html

相关文章

  • 10第三章:【01】UML类图
    一、UML基本介绍1、UML——UnifiedModelingLanguageUML(统一建模语言),它是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的......
  • P3402 可持久化并查集
    P3402通过主席树维护不同版本的并查集,注意要采用按秩合并的方式,路径压缩可能会爆。1#include<bits/stdc++.h>2usingnamespacestd;3constintN=3e5+10;......
  • 2022-2023-1 20221407
    进制转换班级......
  • 暗图像图像修复处理CVPR2021
    ????基本信息RestoringExtremelyDarkImagesinRealTime实时恢复极暗的图像​​github.com/MohitLamba9…​​​​Lamba_Restoring_Extremely_Dark_Images_in_Real_Tim......
  • 图片转换为 mp4 video,一项神奇的技术【CVPR 2020】
    ????基础信息3DPhotographyusingContext-awareLayeredDepthInpainting​​github.com/vt-vl-lab/3…​​​​另外一篇2D转换3D的博文​​requirements.txtpytorch==1......
  • mPaaS x Menxlab | 1024程序员节:Talk is cheap,Show me the AppID
    有这样一群人他们的灵魂和身体总有一个在写代码他们自称码农/程序猿/程序媛但无论使用的是JAVA、PHP、Python、GO、SQL……在计算机面前,他们都简单直接程序员群体,往往......
  • 2022.10.7
    ACM。结果不是很好。一开始的节奏是很好的,但从A题调不出来开始就乱了。每个人再自己的题上都有深入思考,但对别人的情况不了解,所以讨论的效率实际不高,而且很容易被套进死胡......
  • 2022牛客国庆集训派对day6 A(极大矩阵计数)
    2022牛客国庆集训派对day6A(极大矩阵计数)A-All-oneMatrices_2022牛客国庆集训派对day6(nowcoder.com)题目求可以构成给出的01矩阵的全1极大矩阵数目思路悬线法可......
  • 【闲话】2022.10.07
    发现似乎我妈登上博客园了那我是不是该收敛点啊总之今天考了场试啊密码还是我的某中文网名全拼。还是相对论:只要大家都挂了那我就没有挂————bikuhiku看......
  • The 2021 ICPC Asia Shenyang Regional Contest
    比赛链接:https://codeforces.com/gym/103427B.BitwiseExclusive-ORSequence题意:给定\(m\)个限制,要求构造一个全是非负整数的序列\(a\),每个限制告诉\(u,v,w\),......