1、面向对象的个人理解
对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
而面向对象是java程序设计的思想,它没有标准的定义,不同的人理解也不一样,我个人的理解是面向对象是以对象为主体,通过描述对象来描述事物的属性、行为等等。例如,当我们描述生产生产汽车时,可以把汽车作为一个对象,把它视为描述的主体,汽车的各种属性(如汽车的颜色、汽车轮胎的个数等等)和行为(如汽车如何行驶等等)封装的一个类中,通过找对象、建立对象、使用对象和维护对象来完成对程序的设计。
2、面向对象的三大特征
第一特征:继承
(1)继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
(2)对象的一个新类可以从现有的类中派生,这个过程称为类继承,新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
(3)派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
第二特征:封装
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
第三特征:多态性
(1)多态性是指允许不同类的对象对同一消息作出响应。
(2)多态性包括参数化多态性和包含多态性。
(3)多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
(4)多态的体现:
父类的引用指向子类的对象;父类的引用接收子类的对象。
(5)多态的好处:
提高了程序的扩展性
(6)多态的弊端:
提高了扩展性,但是只能使用父类的引用访问父类的成员。
(7)多态的前提
必须类与类之间有关系,要么继承,要么实现,通常存在覆盖。
3、面向对象与面向过程的比较
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
例如:把大象装进冰箱
通过面向过程的思想来理解:第一步:把冰箱门打开;第二步:把大象装进冰箱里;
第三部:把冰箱门关上。他强调动作和过程,是一系列的步骤。
通过面向对象的思想来理解:把冰箱看成一个对象,冰箱具有三个行为,第一个行为是打开冰箱门,第二个行为是把大象装进去,第三个行为是关闭冰箱门。它不在乎如何一步步的完成,而是强调的是对象所具有的属性和方法,至于如何实现就不在乎了。