yaogao@gmail.com
类与类之间存在以下关系:
1、 泛化(Generalization)<o:p></o:p>
很简单,就是我们常说的继承。是说子类获得父类的功能的同时,还可以扩展自己的功能。
如图:
Java代码中表现为:extends 和 implements
2、 依赖(Dependency)<o:p></o:p>
两个相对独立的咚咚(A和B),当A负责构造B时,A与B形成依赖关系,即A使用B。
如图:
<v:shape id="_x0000_i1026" style="WIDTH: 378pt; HEIGHT: 81.75pt" type="#_x0000_t75"><v:imagedata o:title="Dependency" src="file:///D:\DOCUME~1\Yaogao\LOCALS~1\Temp\msohtml1\01\clip_image003.wmz"></v:imagedata></v:shape>
Java代码中的表现为局部变量,方法的参数,以及对静态方法的调用
3、 关联(Association)<o:p></o:p>
两个相对独立的咚咚(A和B),当A对象持有B对象的时候,形成关联关系。
关于分为有两种特殊的形式,聚合(Aggregation)和组合(Composition),聚合和组合只有概念上的区别,在Java中的代码实现上没有区别。
聚合:指的是整体与部分的关系,如图:
组合:表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期,即整体对象不存在,部分对象也将不存在,如图:
Java代码中,表现为成员变量。
4、 总结<o:p></o:p>
在Java中,应该尽量优先使用组合,而不是继承,因为继承会使得类关系过于复杂化,破坏了封装性,使用组合一样可以获得已有类的功能,而且会使新类更加稳固。
实际上,从依赖 -----〉聚合--------〉组合,类与类之间的关系更加紧密,互相之间的影响越来越大,其实我们平常比较少去区分这些关系,而且事实上这东西的定义不太好理解,所以肯定会导致认识上的偏差,所以我们使用这些东西的时候,尽量靠近大家都认同的做法,这样容易让别人理解。
分享到:
相关推荐
Java 中类与类之间的关系 Java 中类与类之间的关系是理解面向对象编程的关键概念。这些关系包括泛化、依赖、关联和聚合等。了解这些关系对于设计和实现软件系统非常重要。 一、泛化关系 泛化关系是类与类之间的...
### Java中类与类之间的关系 #### 泛化(Generalization) 在面向对象编程中,泛化是指一种类从另一种类获取属性和行为的方式。在Java语言中,泛化主要通过继承来实现。继承允许一个类(子类或派生类)继承另一个类...
Java类与类的关系,对java开发有很大帮助
Java 基础第七章内部类与异常类 Java 语言支持在一个类中定义另一个类,这样的类称做内部类。内部类和外嵌类之间存在着紧密的关系:内部类可以访问外嵌类的成员变量和方法,而外嵌类也可以使用内部类声明的对象作为...
JAVA类与对象及数组习题 JAVA类和对象及数组是JAVA编程语言的基础概念。下面是关于JAVA类和对象及数组的习题,涵盖了构造方法、继承、多重继承、变量声明、数组初始化等方面的知识点。 1. 构造方法的调用方式: ...
在Java中,类的组合是一种重要的概念,它允许我们构建更复杂、更丰富的对象模型,能够反映现实世界中的复杂关系。通过类的组合,可以将基本类型、基本类型的类、以及自定义的类通过创建新的类进行组合,实现功能和...
在Java编程语言中,类与类之间的关系是构建复杂系统结构的基础,这些关系不仅限于继承和封装,还包括了关联、依赖、聚合和组合等多种形式。以下是对这些关系的深入探讨: ### 1. 关联关系(Association) 关联关系...
Java实体类(Entity Class)作为数据模型的表示,与数据库中的表进行映射,使得开发者能够更方便地操作数据库。本主题主要讲解如何利用工具或自定义脚本将MySQL数据表自动生成对应的Java实体类,提高开发效率。 ...
这个小工具的目的是将MySQL数据库中的表结构转换为对应的Java类,这样开发者就不需要手动创建这些表示数据库记录的类。下面将详细解释这个过程涉及的知识点。 1. **MySQL数据库**: MySQL是一种流行的开源关系型...
在Java编程语言中,"等级分类"通常...这些文件可能包含不同层次的类定义,展示了如何通过继承和多态性来构建一个复杂的Java类体系。通过研究这些示例,你可以更好地理解如何在实际项目中有效地使用Java的等级分类功能。
在Java编程语言中,面向对象编程是核心特性之一,它允许我们通过类来定义对象的结构和行为。在这个"学生类和老师类"的项目中,我们将深入探讨如何使用Java来创建这两个特定的类,以及它们如何交互和共享数据。 首先...
javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据类型之间的可序列化映射关系。 javax.sql.rowset.spi 第三方供应商在其同步提供者的实现中必须使用的标准类和接口。 javax.swing 提供...
JavaIO类InputStream/OutputStream继承关系图,使您对IO类一目了然
- **生成实体类**:工具会解析SQL脚本,根据表的列信息生成对应的Java类,包括字段、getter和setter方法以及可能的构造函数。 - **整合到项目**:将生成的Java实体类添加到你的Java项目中,然后就可以在代码中使用...
1. **继承数量**:Java类可以实现多个接口,但只能继承一个抽象类。这使得接口更适合实现多继承的场景。 2. **成员变量**:抽象类可以有实例变量,而接口只能有常量(final static)。 3. **方法实现**:抽象类可以...
"java类与对象实例" 在 Java 中,类和对象是两个紧密相连的概念。类是一种蓝图,用于创建对象,而对象是类的一个实例。类描述了对象的基本结构,包括属性、方法和事件等。类设计的关键概念包括封装、继承和多态。 ...
Java类思维导图是理解Java编程语言中类与类之间关系的重要工具,它通过图形化的方式,清晰地展示了Java各类的结构、继承关系以及方法的使用。这份"Java思维导图"很可能包含了从基础的面向对象概念到高级特性的全面...
Java类加载器遵循双亲委派模型,其目的是提高系统的稳定性。该模型规定除了顶层的启动类加载器外,其余的类加载器都应当有一个父类加载器。类的加载请求会首先传递给父类加载器处理,如果父类加载器无法处理,则交给...
1.java类的六种关系.zip1.java类的六种关系.zip1.java类的六种关系.zip1.java类的六种关系.zip1.java类的六种关系.zip1.java类的六种关系.zip1.java类的六种关系.zip1.java类的六种关系.zip1.java类的六种关系.zip1....