8.2.4对象之间的关系

继承是对象之间的一种简单关系,可以让派生类完整地获得基类的特性,而派生类也可以访问基类内部的一些工作代码(通过protected成员)。对象之间还有其他一些比较重要的关系。

本节简要讨论下述关系

包含关系

一个类包含另一个类。这类似于继承关系,但包含类可以控制 对被包含类的成员的访问,甚至在使用被包含类的成员前进行其他处理

集合关系

一个类用作另一个类的多个实例的容器。这类似于对象数组,但集合有其他功能,包括索引、排序、重新设置大小等。

1.包含关系

用一个成员字段包含对象实例,就可以实现包含关系。这个成员字段可以是公共字段,此时与继承关系一样,容器对象的用户就可以访问它的方法和属性,但不能像继承关系那样,通过派生类访问类的内部代码。

另外,可以让被包含的成员对象变成私有成员。如果这么做,用户就不能直接访问其成员,即使这些成员是公共的,也不能访问。但可以使用包含类的成员访问这些私有成员。也就是说,可以完全控制被包含的类有什么成员,如果有成员,还可以在被包含类的成员前,在包含类的成员上进行其他处理。

例如://Udder乳房

Cow类包含一个Udder类,它有一个公共方法Milk。Cow对象可以按照要求调用这个方法,作为SupplyMilk()方法的一部分,但Cow对象的用户看不到这些细节。

在UML中,被包含类可以用关联线条来表示。对于简单的包含关系,可以用带有1的线条说明一对一的关系(一个Cow实例包含一个Udder实例)

时间: 2024-10-05 23:45:05

8.2.4对象之间的关系的相关文章

面向对象中多个对象之间的关系

http://www.cnblogs.com/wing011203/archive/2012/06/23/2559223.html 当谈到面向对象的设计时,我们经常说面向对象是符合人们对现实世界的思维模式,即人们采用针对非程序设计领域存在的复杂问题的解决方式,来解决软件设计过程中各种错综复杂的关系.利用面向对象设计,特别是采用各种设计模式来解决问题时,会设计多个类,然后创建多个对象,这些对象,有些主要是数据模型,有些则是行为描述占主体.一个设计良好的类,应该是兼顾信息和行为,并且是高内聚.而不同

关于:无法定义这两个对象之间的关系,因为它们附加到不同的 ObjectContext 对象。个人解决方案

1 public class UserClazz 2 { 3 public User User{get;set;} 4 public IList<Product> ProductList{get;set;} 5 } 6 7 public class User 8 { 9 public IList<Product> ProductList{get;set;} 10 public IList<UserClazz> UserClazzList{get;set;} 11 } 1

PHP类和对象之间的关系

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

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

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

EF数据存贮问题二之“无法定义这两个对象之间的关系,因为它们附加到不同的 ObjectContext 对象”

“无法定义这两个对象之间的关系,因为它们附加到不同的 ObjectContext 对象”,这是在EF中,一对多关系表,有外键的类保存至数据库中出现的错误. 我原来是用JAVA开发的,习惯性的处理一对多中类与类的关系,在C#里也是这样处理的.下面是个简单的一对多关系C#里的实现(先数据库,后VS生成代码): public class ObjectA{ public int ID{set;get;} public int objectbid{set;get;}//数据库生成 public Objec

JS对象之间的关系

JS对象类型 JS中,可以将对象分为"内部对象"."宿主对象"和"自定义对象"三种. 1.本地对象 ECMA-262定义为"独立于宿主环境的JS实现提供的对象".简单来说,本地对象就是JS定义的类(引用类型).它们包括: Object/Function/Array/String/Boolean/Number/Date/RegExp/Error/ EvalError/RangeError/ReferenceError/Synta

java--------【对象之间的关系】

Java中的对象之间的关系有多种,在此之前我着实对这些只是有一点模糊的概念,知道有一次在面试中被面试官问道,才有了这些概念.那就今天借这个机会同大家分享下这个知识点,同时我也在去学习一遍. 1.依赖关系: 这种关系是几种关系中最弱的一种,是对象之间的一种临时关系.例如在一个方法中的返回值供其他对象的调用,这样就与其他的对象建立了一种临时的关系,等调用该方法结束后,他们之间产生的关系也就结束了. 2.关联关系: 所谓的关联关系,对象彼此之间的一种联系.例如淘宝中,用户类与订单类之间的关系,他们彼此

对象之间的关系

对象与对象之间的关系 三种关系: 1)组合关系(如汽车和轮胎,计算机与cpu) 2)依赖关系(钥匙和门) 3)关联关系(学生与课程与书本) 耦合度:当修改1个对象时,对另外一个对象的影响程度. 低耦合:当修改1个对象的时候,对另外1个对象的影响较 甚至没有影响. 高内聚:1个对象仅仅做自己相关的事情.单一职责原则. (比如 创建一个人类,只干人做的事情) 总结: 组合关系和关联关系用法是一样的,即1个对象是作为另一个对象的成员变量 组合:整体-局部 关联:不存在必然关系 依赖:1个对象作为另一个

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

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

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

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