之前一直在说面向对象面向对象其实自己也没有搞得很清楚。
刚刚翻开了java7(图书馆没有jva8,然后估计明年就会出java9了,厉害了我的java)看到绪论部分讲面向对象的程序设计,故而来稍微整理下,加深下记忆。
首先在整理OOP的时候先提及一下C和Pascal用到的方法:
结构化程序设计方法:相对于机器指令和汇编语言有了长足的进步,结构化的语言使得复杂程序变得简单了很多,特点是支持鼓励的子例程,局部变量,丰富的控制机构和不试用Goto(然而我并没有用过goto...),但在处理非常大的项目时就有点捉襟见肘了,很多项目甚至已经达到了结构化程序设计方法工作的极限。
程序可以用两种方法组织:1.围绕代码(发生了什么)2.围绕数据(谁受了影响)
结构化程序是第一种围绕代码的的方法。
面向对象的方法(OOP)是后一种围绕数据的方法,以“数据控制访问代码”为主要原则,围绕数据来组织程序,在面向对象的语言之中需要定义数据和作用于数据的例程。
OOP有三个特性:封装,多态性和继承。
封装:自包含的黑盒子,有私有和公有的部分,公有可以被访问,私有的外部不能访问。Java中基本封装单元是类(Class)。
多态性:允许用一个接口在访问同一类动作的特性。(“单接口,多方法”)例如一个堆栈,可以处理int,float,double各种,只要知道如何使用int,那么float和double肯定没什么问题。换而言之,只要会用轿车的方向盘,那么卡车,卡丁车的方向盘肯定也会用。
继承:一个对象获得另一个对象的属性的过程。(重要的原因是支持层次结构类的概念)例如定一个类用来表示食物,那么定义一个类表示水果的时候自然是可以继承食物里的属性,而且可以增加很多自己的特有属性,再往下可能就是表示苹果的类,再往下表示鲜红多汁的苹果等等。
总结一下,面向对象的方法,以“数据控制访问代码”为主要原则,围绕数据来组织程序。
祝面向对象愉快~XD