------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
黑马程序员--Java之面向对象的概述02
一、什么是面向对象
在程序开发的初期人们使用结构化开发语言,但随着软件的规模越来越大,结构化语言的弊端也逐渐暴露出来,开发周期被延长,产品的质量也不尽如人意,结构化语言已经不再适合当前的软件开发。这时人们开始将另一种开发思想引入程序中,即面向对象的开发思想。面向对象思想是人类最自然的一种思考方式,它将所有预处理的问题抽象为对象,同时了解这些对象具有哪些相应的属性以及展示这些对象的行为,以解决这些对象面临的一些实际问题,这样就在程序开发中引入了面向对象设计的概念。
Java是一种面向对象的程序设计语言,了解面向对象的编程思想对于学习Java开发相当重要。那什么是面向对象呢?
面向对象是一种符合人类思维习惯的编程思想。实质上就是对现实世界的对象进行建模操作,
现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现实中的事物,使用对象之间的关系来描述事物之间的关系,这种思想上就是面向对象
。
在实际开发中,根据面向对象的编程思想,把解决的问题按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题。,一个应用程序会包含多个对象,通过多个对象的相互配合来实现应用程序的功能,这样当应用程序功能发生变动时,只需要修改个别的对象就可以了,从而使代码更容易得到维护。面向对象的特点主要可以概括为封装性、继承性和多态性。
深入理解面向对象的思想,对以后的实际开发大有裨益。
1.1、封装性
封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。例如,用户使用电脑城,只需要使用手指敲键盘就可以了,无须知道电脑内部是如何工作的,即使用户可能碰巧知道电脑的工作原理,但在使用时,并不完全依赖电脑的工作原理这些细节。
采用封装的思想保证了类内部数据结构的完整性,应用该类的用户不能轻易地直接操作此数据结构,只能执行类允许公开的数据。这样就避免了外部操作对内部数据的影响,提高了程序可维护性。
1.2、继承性
事物之间有着各种各样的关系,类与类之间同样具有关系,这种关系被称为关联,关联主要描述两个类之间的一般二元关系。两个类之间的关系的很多种,继承是关联中的一种,继承性主要描述的就是类与类之间的关系,通过继承,可以在无须重新编写原有类的情况下,对原有类的功能进行扩展。例如,有一个汽车的类,该类中描述了汽车的普通特性和功能,而轿车的类中不仅应该包含汽车的特性和功能,还应该增加轿车特有的功能,这时,可以让轿车类继承汽车类,在轿车类中单独添加轿车特性的方法就可以了,这就是继承的基本思想。继承不仅增强了代码复用性,提高了开发效率,而且为程序的修改补充提供了便利。
1.3、多态性
多太性指的是在程序中允许出现重名现象,它指在一个类中定义的属性和方法被其他类继承后,它们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类中具有不同的主义。例如,当听到“Cut”这个单词时,理发师的行为是剪发,演员的行为是停止表演,不同的对象,所表现的行为是不一样的。
多态性允许以统一的风格编写程序,以处理各类繁多的已存在的类及相关类。该统一风格可以由父类来实现,根据父类统一风格的处理,可以实例化子类的对象。由于整个事物的处理都只依赖于父类的方法,所以日后只要维护和调整父类的方法即可,这样就降低了维护的难度,节省了时间。
提到多态,就不得不提抽象类和接口,因为多态的实现并不依赖具体类,而是依赖于抽象类和接口。
平行四边形是四边形,正方形、矩形也都是四边形,可以将四边形类看作四边形的延伸。而图形类是所的图形有父类,具有绘制图形有能力,这个方法可以称为“绘制图形”,但如果要执行这个“绘制图形”的命令,没有人知道应该画什么样的图形,并且如果要在图形类中抽象出一个图形对象,没有人能说清楚这个图形究竟是什么图形,所以使用“抽象”这个词来描述图形类比较恰当。在Java语言中称这样的类为抽象类,抽象类不能实例化对象。在多态的机制中,父类通常会被定义为抽象类,在抽象类中给出一个方法的标准,而不给出实现的具体流程。实质上这个方法也是抽象的,如图形类中的“绘制图形”方法只提供一个可能绘制图形的标准,并没有提供具体绘制图形的流程,因为没有人知道空间需要绘制什么形状的图形。
在多态的机制中,比抽象类更方便的方式是将抽象类定义为接口。由抽象方法组成的集合就是接口。接口的概念在现实中也极为常见,如从不同的五金商店买不螺丝帽和螺丝钉,螺丝帽很轻松地就可以拧在螺丝钉上,可能螺丝帽和螺丝钉的厂家不同,但这两个物品可以轻易地组合在一起,这是因为生产螺丝帽和螺丝钉的厂家都遵循着一个标准,这个标准在Java中就是接口。
本文详细介绍了Java中面向对象编程的核心概念,包括封装性、继承性和多态性。封装性确保了类内部数据结构的完整性,继承性允许通过扩展现有类来增强功能,而多态性则通过抽象类和接口实现统一处理各类对象的能力。

3951

被折叠的 条评论
为什么被折叠?



