面向对象object-oriented 篇1

写在前头

这篇笔记我大概是7点半开始看视频在写,中途大概半小时去看UML去了很有意思。

笔记是在语雀写完的,导出很麻烦,图片有防盗链。

逐步探索出从语雀到博客的写作方式:

  • 在语雀写笔记会舒服很多,对于源素材的管理就,图片放桌面上。
  • 然后从语雀导出md,再进行手动插图。
  • 最后再删掉,例如:![截屏2023-10-22 08.55.25.png 字样

一、蛋图

【面向对象设计C++-- 浙江大学 -- 翁恺 --国家精品课程(附源代码)】 https://www.bilibili.com/video/BV1yQ4y1A7ts/?p=2&share_source=copy_web&vd_source=59d47afd43812c161ca8ef67a1dfea4d
笔记:
面向对象? 面向对象是什么?
从对象出发,考虑问题,分析问题。

  • object= entity 东西
  • entity ? 可见的 不可见的
  • objest is variable in programming languages 变量 任何变量都是对象

  • objects=attributes+services 对象=属性+服务 比如,灯,对外提供的服务是发光/不发光 可以从上图看到,里面的对象,是不能直接去操作的,你只能通过外面的服务去访问。 这点很重要。

二、映射

  • “映射” : 从问题空间到程序空间(解空间) 面向过程:从时间顺序去分析,事情发生的流程,一步一步。 面向对象: 在这个场景中,存在什么样的东西,来分析这个事情。

  • 对象是什么? 里面是数据,外面是Operations.

【面向对象设计C++-- 浙江大学 -- 翁恺 --国家精品课程(附源代码)】 【精准空降到 15:42】 https://www.bilibili.com/video/BV1yQ4y1A7ts/?p=2&share_source=copy_web&vd_source=59d47afd43812c161ca8ef67a1dfea4d&t=942

a.print(); a是对象,数据是xyz,外面的Operations是print()

  • 对oop进行分析: 用面向对象的思想去设计designs,找思路 ,用面向对象的语言去实现implementations,用代码写出来。

  • 对象可以 发送消息。 这很容易用生活中的例子来解释

  • 类 类理解成概念, 对象是一个实体。 例如, 人, 在你定义“人”的概念之后, 你还是不知道,不清楚。 你需要对象,

类定义了对象长什么样子, 对象是那个类的一个东西。 杯子定义了杯子是什么样子的,具体的杯子是这个杯子的实例。 C++里,类Class 和 类型Type是一样的。

三、oop描述


第一点不用管,
第二点,理解这里的“what to do”, 而不是“how to do”。 我告诉你要去干一件什么事情,这就ok了,至于你怎么去干是你的事情,我不关心这个。 这就让我想到一句,很潮的话,你在教我做事吗? 大概体会下, what to do 和 how to do 的区别。
第三点,对象之中还是对象。
第四点,任何东西都是有类型的,这个好理解吧。 计算机科学是人为制造的, 先有规则,再根据规则去做, 对计算机来说,一定是先有一个类型,然后再根据这个类型去制造一个对象。
第五点,一个特定类型的所有对象都可以接受相同的消息(举例:大杯子、小杯子,都是杯子,都能接水);所有可以接受相同消息的对象可以被认为是同一个类型(举例:一个苹果、一个梨,都是水果)。 从个体的特性去总结,然后看看它是什么类型。

四、interface 接口


对于接口的理解,接口之外的东西,是可以换掉的。 如果在程序设计的时候,设计有接口,那么更换就会方便一些。 “拆换” “耦合”程度, 松or紧

  • 隐藏一些东西 protection保护 蛋图? , 蛋清会去保护蛋黄。 在接口不变的前提下,你换里面的东西,这是可以的,因为接口没有变,这就是 hide implementation的好处

五、封装 encapsulation

capsulation

相关推荐

intel 8086 asm 基础1

1.进入debug模式 r 查看 2. mov指令测试 指令以CS:IP 格式进行读取,后跟8086 asm实 ...

暂无评论

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。