面向对象思想(一)

来源:互联网 发布:ubuntu命令行安装jdk 编辑:程序博客网 时间:2024/06/05 00:11

1.什么是面向对象思想?

2.类和对象

3.面向对象编程的三大特性


1.什么是面向对象思想?

确确的说,还没有人能为面向对象给出一个全面的定义;至少到目前为止我没发现有,以后可能更难了定义,因为面向对象扩展涵盖到领域越来越广泛了。我是这么理解的:面向对象思想就是把世界看作是由各种各样具有自己内部特征和运动规律的结构单元组成的;不同结构单元之间的相互作用和通讯构成了完整的现实世界。这个世界就是系统(当然也可以说世界是一个很大的对象,对象里面有很多对象作为他的属性),而结构单元就是系统里面的对象;结构单元里面的特征和运动规律就是对象的属性和行为。因此,面向对象思想认为:人们应当按照现实世界这个本来面貌来理解世界,直接通过对象及其相互关系来反映世界。这样建立起来的系统才能符合现实世界的本来面目。它强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象来构造系统而不是围绕功能来构造系统。

2.类和对象

如果把世界看作系统或者对象;对象那么多,对象之间有相同的部分(特征/行为)和不同的部分(特征/行为);那么那些面向对象的语言是如何做到面向对象思想的呢?他们是通过引入一个叫类的抽象结构。在面向对象编程里面,类的作用就是将一组对象中相同的部分(特征和行为)进行抽象;不同部分通过类的继承来获取共同特征和行为,自然而然的引入父类和子类的概念,子类继承父类,子类可以拥有父类所拥有的特征和行为,同时子类可以拥有自己的特征和行为。类是抽象的,类声明成对象之后,对象时具体的;也就是说:对于现实世界而言,类是具体的;但是对于类声明出来的对象而言,类是抽象的。也就是说从现实世界到类再到对象,是一个从普遍到特殊的过程。

3.面向对象编程的三大特性

面向对象编程有三大特性:继承/封装/多态。继承主要是使子类可以延用父类的特征和行为。关于封装,主要是安全性考虑的;对象的某些敏感特征和行为应当隐藏在内部,外部只能通过指定接口访问该对象的这些敏感特征和行为,从而提高对象到安全性。主关于多态,这里要引入一个叫“里氏替换原则”的概念:是一种契约,就是父类出现的地方子类都可以出现,或者说成是父类对象出现的地方都可以用子类对象来替换或者实例化。因此,当我们用父类声明一个对象变量,却用一个子类的初始化方法实例化了该对象,那么运行时调用的该对象多方法并非声明的父类的方法,而是子类覆盖父类之后的子类里的方法。


0 0
原创粉丝点击