类与类之间的关系--泛化,关联,依赖,实现

类,对象是面向对象的基础,类与类之间的关系是面向对象不可或缺的一部分。下面将从类的关系定义,UML中的符号表示,代码实现三方面介绍类与类之间的关系。

1、泛化(Generalization):也成为继承关系。指一个类(子类或者子接口)继承另外一个类(父类或者父接口)的功能。并可以增加自己的功能。在程序程序中用关键字xtends明确标识,在UML设计中用空三角和实线表示,从子类指向父类,或者子接口指向父接口。

如图             

代码:

public class Cat {

	public Cat(){

	}

	public void Eat(){

	}

	public void Run(){

	}

	public void Walk(){

	}

}
子类示例
public class WhiteCat extends Cat {

	public WhiteCat(){

	}

	public void Eat(){

	}

	public void Run(){

	}

	public void Walk(){

	}

}

2、实现(Realize) 是指 一个class 实现interface接口的功能,用关键字implements标识,在UML设计中用一条带空心箭头的虚线表示,箭头指向接口。

如图                

代码:

public interface Iaction {

	public void drink();

	public void eat();

}
public class dog implements Iaction {

	public dog(){

	}

	public void finalize() throws Throwable {

	}

	public void drink(){

	}

	public void eat(){

	}

}

3、依赖(Dependency)是指一个类A使用到了另一个类B,而这种使用关系是具有偶然性、临时性。但是类B的变化会影响到类A。表现在代码层面,为类B作为参数被类A在某个方法中使用。在UML类图设计中用由类A指向类B的带箭头虚线表示。

如图                    

4、关联关系  关联体现的是两个类之间语义级别的一种强依赖关系,比如我和我的朋友,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方关系一般是平等的。关联可以单向的也可以是双向的。表现在代码层面,为被关联类B以类的属性形式出现在关联类A中,也可能是关联类A引用了一个类型为关联类B的全局变量。在UML类图设计中,关联关系用有关联类A指向被关联类B的带箭头实线表示,在关联的两端可以标注关联双方的角色和多重性标记。

如图                         

5、聚合关系(Aggregate)是关联关系的一种,表示整体与部分的关系是has- a的关系。整体和部分是可分离的他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。比如汽车和轮胎。表现在代码层和关联关系是一致的,只能从语义级别区分。在UML类图设计中,聚合关系以空心菱形加实线箭头表示。

如图                           

6、组合(Compose)也是关联关系的一种特例,它体现的是一中is-a 的关系,这种关系比聚合更强,它所表示的整体与部分的关系是不可分的。整体的生命周期结束部分的生命周期也结束。如人和人的大脑。在UML设计中用实心的菱形和实现箭头表示。

如图                           

上述的六种关系很简单,在应用中容易混淆的就是箭头所指的方向,其中泛化和实现指向抽象类。依赖和关联指向属性类或者子类。此类总结网上很多,为了学习最好自己实际动手画画。会有精彩等着你。

时间: 2024-08-20 14:47:18

类与类之间的关系--泛化,关联,依赖,实现的相关文章

PHP类和对象之间的关系

类是对象的描述: 类和对象之间的关系类似于建房子的图纸和房子: 创建类--new对象--用对象: 一.对象的两个特性: --对象的行为(功能):可以对对象施加操作,例如,电视机的开.关.转换频道: --对象的状态(属性):当施加操作时对象如何反应,例如,电视机的外形.尺寸.颜色等: 例子: 根据一份配置单组装六十台电脑,配置单里每增加一项配置,60台电脑各增加一厢配置. 1.配置单就是要创建的"类": 2.60台电脑就是创建的对象: 3.60台电脑间没有连系: 二.如何抽象一个类 1.

3.2-面向对象(类与对象之间的关系)

3.2 类与对象的关系 使用计算机语言就是不断的在描述现实生活中的事物. java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义. 对象即是该类事物实实在在存在的个体 . 3.2.1  类与对象( 图例) 3.2.2  类的定义 生活中描述事物无非就是描述事物的属性和行为. ?  如:人有身高,体重等属性,有说话,打球等行为. Java中用类class来描述事物也是如此 ?  属性:对应类中的成员变量. ?  行为:对应类中的成员函数. 定义类其实在定义类中的成员(成员变量和成员函

UML图类,接口之间的关系

UML图类之间的关系(来自大话设计模式中的一张图,代表了类,接口之间的各种关系) 原文地址:https://www.cnblogs.com/linlf03/p/9735917.html

UML关系(泛化,实现,依赖,关联(聚合,组合))

UML的构造快包含3种: (1) 事物(4种):结构事物,行为事物,分组事物,注释事物 (2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系 (3) 图(10种):用例图,类图,对象图,包图,组件图,部署图,状态图,活动图,序列图,协作图 事物是对模型中最具代表性的成分的抽象:关系把事物结合在一起:图聚集了相关的事物. (2) 关系(4种) UML 中类与类, 类与接口, 接口与接口这间的关系有: 泛化(generalization) 关系, 关联(association)关系( 关联,

什么是类,什么是对象,类和对象之间的关系

类的概念:类是具有相同属性和服务的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分. 对象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位.一个对象由一组属性和对这组属性进行操作的一组服务组成.从更抽象 的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用:它是一组属性和有权对这

【PHP面向对象(OOP)编程入门教程】2.什么是类,什么是对象,类和对象之间的关系

类的概念:类是具有相同属性和服务的一组对象的集合.它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分.在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分. 对象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位.一个对象由一组属性和对这组属性进行操作的一组服务组成.从更抽象 的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用:它是一组属性和有权对这

Java 中判断类和实例之间的关系

判断类与实例的关系有以下三种方式 1.instanceof关键字,用来判断对象是否是类的实例 (对象 => 类 )   2.isAssignableFrom,用来判断类型间是否存在派生关系 (类 = > 类)   3.isInstance方法,用来判断对象是否属于某个类型的实例 (类 => 对象 //use instanceof,用来判断对象是否是类的实例 System.out.println(new A() instanceof B);//类型比较 //use isAssignable

java 类与类之间的关系 及uml图

类与接口之间的关系 : 继承 类与类之间的关系 :继承关系  包含关系 类与对象之间的关系 : 实例 UML 类图中类与类之间的关系: 泛化关系(generalization) 关联关系(association) 聚合关系(aggregation) 合成关系 (compostion) 依赖关系 (dependency) 1.泛化(Generalization)[泛化]表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系.一般化的关系是从子类指向父类的,与继承或实现的方法相反.

UML-用例、类图、类图之间的关系详解

UML UML 一用例图 二类图 一.用例图 用例图的基本概念 由参与者.用例以及用例与用例之间的关系构成的用于描述系统功能的动态视图称为用例图. 参与者的基本概念 参与者(Actor)是指存在于系统外部并直接与系统交互的人.系统或者设备等. 参与者在画图中使用简笔人物画来表示,如下所示: 用例的基本概念 用例是系统为参与者提供的功能. 对于用例的命名,我们可以给用例取一个简单的.概括性的,一般带有动作性的词语. 用例的图形化表示,如下所示: 参与者和用例的关系 如下所示: 用例与用例之间的三个