一、简介

类是对象的集合,展示了对象的结构以及与系统的交互行为。类主要有属性(Attribute)和方法(Method)构成,属性代表对象的状态,如果属性被保存到数据库,此称之为“持久化”;方法代表对象的操作行为,类具有继承关系,可以继承于父类,也可以与其他的Class进行交互。

二、 对象之间的关系

1.(树形)继承–>实现(父类–子类) 接口–>实现
2. (平行)由强到弱的关系:依赖–>关联–>聚合–>组合

三、实例说明

1.依赖关系(可以使用你,偶然的)

 /// <summary>/// 类之间的关系(1):依赖关系(Dependence)/// 1. 关系特点:一个类中,“使用” 到了另一个类。这种 “使用” 是临时的、较弱的关系。/// 2. 典型应用:一个类作为另一个类中方法的参数,或者这个方法的局部变量。/// </summary>public class ClassA{public void Method1(ClassB cb){cb.Test();}public void Method2(){ClassB cb = new ClassB();cb.Test();}}public class ClassB{public void Test() { }}

2.关联关系(需要使用你,长期的)

   /// <summary>/// 类之间的关系(2):关联关系(Association)/// 举例:比如客户和订单之间就是一种关联关系。一个对象和另一个对象是有关联的。但是这种关系是客观的关系,而非组成关系。/// /// 1. 关系特点:一个类A中,“使用” 到了另一个类B。这种 “使用” 是长期的、较强的关系。/// 2. 典型应用:一个类作为另一个类中“成员”。可以是一对一,一对多,(集合对象)/// 3. 组合形式:单向,双向,自关联/// </summary>public class ClassA{private ClassB classB;}public class ClassB{private List<ClassA> caList;public void Test() { }}/// <summary>/// 自关联/// </summary>public class ClassC{private ClassC classc;}

3.聚合关系(团队的成员,大家关系比较紧密。但是并不是非你不可!)

    /// <summary>/// 类之间的关系(3):聚合关系(Aggregation) 是关联关系的一种特例。/// /// 举例:汽车和发动机?轮胎?/  电脑和键盘?鼠标.../// /// 1. 关系特点:也表示一个对象和另一个对象有关联。但是对象之间是整体与部分的关系!整体和部分可以分开!/// /// 2. 典型应用:一个对象作为另一个类的《成员》。/// /// 3. 组合形式:通过构造方法或者普通方法为成员赋值。对象是从外面创建的,然后传递进来。/// </summary>/// 整体public class Computer{private Keyboard keyboard;public Computer() { }public Computer(Keyboard keyboard){this.keyboard = keyboard;}public void SetKeyboard(Keyboard keyboard){this.keyboard = keyboard;}}/// <summary>/// 部分/// </summary>public class Keyboard{public void Click() { }}public class TestClass{private Computer myComputer = new Computer();private Computer yourComputer = new Computer(new Keyboard());public void Test(){myComputer.SetKeyboard(new Keyboard());}}

4、组合关系(密不可分的,关系非常紧密。谁也不能缺少。)

    /// <summary>/// 类之间的关系(4):组合关系(Compostion) /// /// 举例:人和手、脚/// /// 1. 关系特点:也表示一个对象和另一个对象有关联。但是对象之间是整体与部分的关系!“只不过” 整体和部分“不”可以分开!并且整体和部分共生死!/// /// 2. 典型应用:一个对象作为另一个类的《成员》。/// /// 3. 组合形式:通过构造方法“内”或者普通方法“内”直接创建。对象是从内部创建的,不用传递。这点是区别与聚合。/// </summary>public class Person{private Hand hand;public Person(){this.hand = new Hand(); //代表,人出生就有手}      }/// <summary>/// 部分/// </summary>public class Hand {public void Coding() { } }

四、结尾

每天进步一点,早日成为大佬~
下期讲设计模式

【每天进步一点】C#对象之间的关系相关推荐

  1. 面向过程和面向对象的编程思想 复习原型 构造函数和实例对象和原型对象之间的关系

    体会面向过程和面向对象的编程思想 <!DOCTYPE html> <html lang="en"> <head><meta charset ...

  2. 构造函数和实例对象之间的关系 构造函数创建对象带来的问题 原型

    构造函数和实例对象之间的关系 <!DOCTYPE html> <html lang="en"> <head><meta charset=& ...

  3. 前端小知识点(9):函数和对象之间的关系

    目录 函数与对象之间的关系 代码演示 运行结果 函数与对象之间的关系 函数 有什么 : 函数也是对象          函数有:prototype 对象 有什么 对象:__proto__ 原型对象里面 ...

  4. PHP 中的类, 对象之间的关系

    最近,看了一篇介绍关于PHP中类与对象关系的文章,感觉对类和对象的理解又加深了一层,这里总结一下: (1):创建一个新的类 class Test{public $class_name = " ...

  5. python中类与对象之间的关系_python类与类之间的关系

    在面向对象中,类和类之间也可以产生相关的关系 类中的关系: 依赖关系是最轻的,最重的是继承关系,关联关系是比较微妙的 依赖关系 执行某个动作的时候,需要xxx来帮助完成这个操作,此时的关系是最轻的. ...

  6. javascript中的对象之间继承关系

    相信每个学习过其他语言的同学再去学习JavaScript时就会感觉到诸多的不适应,这真是一个颠覆我们以前的编程思想的一门语言,先不要说它的各种数据类型以及表达式的不同了,最让我们头疼,恐怕就是面向对象 ...

  7. python中类与对象之间的关系_python 类与类之间的关系

    一.依赖关系(紧密程度最低) (1)简单的定义:就是方法中传递一个对象.此时类与类之间存在依赖关系,此关系比较低. (2)实例植物大战僵尸简易版 题目要求:创建一个植物,创建一个僵尸 1.植物:名字. ...

  8. 这个AI模型用最少的训练数据学习对象之间的关系

    https://www.toutiao.com/a6675553528800346628/ 上图:研究人员训练了一个混合AI模型来回答诸如"绿色立方体左边的红色物体与紫色哑光物具有相同形状吗 ...

  9. Java中的类与对象之间的关系

    目录 1 面向对象思想 2 类和对象 1 类 2 对象 3 类与对象的关系 3 类的定义 4 对象的使用 5 成员变量的默认值 1 面向对象思想 对象泛指现实中的一切事物,每种事物都具备自己的属性和行 ...

最新文章

  1. CRF++ 特征工程
  2. netty系列之:在netty中使用protobuf协议
  3. jdk环境变量配置_jmeter及jdk的环境变量配置
  4. USACO2.1【bfs,排序,贪心,dfs,位运算】
  5. mysql数据库性能跟哪些参数有关系_MySQL性能优化全攻略-服务器参数调整
  6. 王道机试指南读后总结-1
  7. [转]java 中的序列化是什么意思?有什么好处?
  8. rsync本地模式讲解04
  9. hashmap扩容_我说我了解集合类,面试官竟然问我为啥HashMap的负载因子不设置成1!?
  10. 74-SSM项目实战前端开发
  11. arcgis怎么做poi_基于POI数据与ArcGIS空间分析技术的城市公交站点现状容量评价方法...
  12. 对一段Oracle GoldenGate (OGG) 传输进程日志(.rpt文件)的解释
  13. 逻辑、认识论和本体论“三统一”
  14. 小米路由器3G刷入OpenWrt
  15. 交换机和路由器的区别_一文读懂交换机和路由器的区别
  16. 计算机二级Ms考试试题是如何抽取的,考证必学 | 计算机二级MS Office考试全攻略...
  17. 互联网中越老越吃香的行业是?
  18. JavaScript的数组练习
  19. 解决Total Commander总是使用老旧的“Windows照片查看器”打开图片的问题
  20. Python学习笔记:第二站 七十二变

热门文章

  1. 用python动手学统计学_3-5样本统计量的性质
  2. java后台生成含有echarts图表的报告并发送邮件
  3. 我爱自然语言处理网文章汇总
  4. 攻防世界——如来十三掌 give_you_flag
  5. python django怎么读_django的英文读法是什么
  6. 如何创作一款商业级的安卓独立应用
  7. linux下usd的配置
  8. 汇编语言实验五-《汇编语言-王爽老师》
  9. 第06课:生活中的中介模式——找房子问中介
  10. Java里面是先算乘除后算加减_java.怎么实现字串符的先乘除后加减阿