- refactor(重构):一下把程序中所有这个变量的名字改成另一个名字
- C++的class和C的struct只有一点点差别,叫类。
- OOP三大原则:封装,继承,多态
-面向对象:时间到了,同学们走进教室一个个坐下来,老师走进来,打开电脑,打开投影仪,铃声响了,老师讲第一句话,同学们听到第一句话,老师讲第二句话,同学们听到第二句话。while时间没到之类的。
换一个角度:有一个教室,教室里有很多学生合影一个老师,有一个投影仪,有一个电脑,他们之间有些关系,比如电脑会输出视频信号到投影仪,投影仪会把视频信号投影到屏幕上,光线会照射到学生眼睛里,学生看到内容。老师发出声音,学生听到声音,老师讲的内容会被学生听到,学生自己内部还会做一些事情。如果这样去做描述,就是面向对象了。因为我们在分析说这个场景里有些什么样的东西,这些东西互相的关系。
面向过程:描述事情发生的流程,按照时间顺序,会一步步发生什么
- 上图public:(冒号表示以下所列),public下面是两个public
- 上图的a.print(), a是一个对象,让a这个对象做print这个事情。任何变量都是对象,对象内 可以有对象。
什么是面向对象?
什么是对象?
对象和类的区别?
- object 东西
- class 东西的种类
- 相似的东西归并为一类,起个名字,它就是类
- C++里类就是类型,类定义了对象长什么样,对象是一个那个类的东西。比如杯子定义了杯子都应该上面有一个口,可以装水不漏。
- 面向对象五条原则
-
Everything is an object (废话)
-
A program is a bunch of objects telling each other what to do by sending messages.(what to do 不是 how to do)
-
Each objects has ist own memory made up of other objects.(抽象)
-
Every object has a type.
-
All objects of a particular type can receive the same messages.(所有可以收到相同信息的对象被认为是相同类型)
-
interface(接口):装接口的好处很大,所以大部分都装了接口。没有接口很麻烦,有接口的话换一个接口就好了。所以在程序里面也要做出像接口这样可以拆换的东西。比如电路,台灯和电路之间就有接口,不然直接将电灯电线和电路相连,台灯就换不了位置,也不安全。在程序里这叫耦合,程序部分的耦合是松是紧,松比较好一些。
-
Functions of interface: communication(交流) and protection(保护),只要程序有接口,里面的data就被保护了,比如灯泡有玻璃罩子,保护了灯丝,可以任意换灯丝,甚至把白炽灯换成LED等,,但接口不变,外界也不知道你内部变换。里面版本迭代,新功能什么的都行,也不用担心client利用自己的对象来做它本做不到的事情。所以程序内部具体实现要隐藏起来。(The Hidden Implementation)![在这里插入图片描述
-
Encapsulation(封装,把东西裹起来,形成有机联系。)package(打包,没有有机联系),把数据和对这些数据的所有操作放在一个对象里头,如那个蛋图一样,data在内,操作在外,这样就把数据细节隐藏起来,外界只能访问到公开内容。