第一章:对象导论
编程语言的产生源于对机器的模仿。而所有的语言都是一个抽象的过程。
因此:汇编语言是对底层的抽象,命令式的语言(例如C,BASIC)是对汇编语言的抽象,面向对象是对命令式语言的抽象。
所以,语言没有绝对的好坏,看你适用的情况。
OOP思想的实质:程序可以通过不断地添加新的对象,来解决和适应特定的问题。(理解,对象的本质应该是一些 编好的 常用的 程序代码段,以方便我们快捷的适用)
ADT:抽象数据类型。与DS中的ADT应该比较相似,都应该是一种抽象出来的辅助结构,关键是要能在实际问题中进行同态变换,加以应用。
(这也是以后对类的学习的一个重点,同态变换,由此及彼)
类里面包括 一: 描述不同特性的(数据元素或者叫变量)
二: 行为和功能的(方法)
面向对象的高内聚性:一个类坚决只做一件事,一件事。
封装引起的访问控制:public 对任何人都可用,相当于无访问控制,随时调用
private 出了类型的创建者和内部方法之外,任何人不可用(理解:隔离程序设计者和使用者,有时会让程序更加安全)
protected 继承的类可以继续访问(理解:对内开放)
三个声明语句是对权限的限定。
代码的复用是面向对象设计最大的优点(理解:可以简化许多相同的无用的操作,相当于你设计的每一段代码都是一个框架,以后都可以再次被引用)
多态与泛化:理解:多态的本质是由于泛化的存在,泛化的设计方式类似于抽象类,好多东西,给出必备的,最关键的;然后并非最关键的都可以自己设计,衍生。
这样子就可以很好的扩充的类的涵盖范围。比如,电脑只用给出 cpu 内存 硬盘 显示屏 总线 这五个基本的方法,然后,你在用的时候可以多态。
多态的本质是为了扩展设计。而泛化和具体要适当把握。因此引出了 上转型:也就是具体。和下转型:进一步的泛化。
单根继承:object 巨大优势:可以保障所有的类都具备某些功能,主要是系统级的。例如 堆上创建对象,参数转化。如果出现更好的方式,只需要更改object就可以对所有的
类进行更改,的确很好很强大。
容器: 据说之前是单一容器。个人觉的:单一容器就想一种大的泛化,生成多个容器,更有利于我们的决断神马时候用神马容器。