java 面向对象基本特征

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java 面向对象基本特征

面向对象程序设计是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法。并且,通过面向对象的方法,来开发程序可以达到开发时间短、效率高、可靠性高、易于维护、更新和升级等等。面向对象的编程方法具有4个基本特征:

1.抽象

抽象是指忽略一个主体中,与当前目标无关的一些方面,以便充分的注意与当前目标相关的方面。因此,抽象只关心与主题相关的一部分主要内容,并不在意主体的全部内容。

例如,设计一个学生成绩管理系统,而学生的成绩为主题,所以只关心与学生成绩相关内容,如学生的学号、班级、学科(课程)和成绩等。而不会在意学生的年龄、身高、体重、家庭住址等内容。

在抽象过程中,主要包含数据抽象和过程抽象两种:

●过程抽象

把完成一个特定功能的动作序列抽象为一个过程名和参数表。例如,输入成绩数据、判断成绩、输出显示。在判断成绩过程中,可以成绩评判出优、良、中和差,并判断是否为优秀生或者需要补考等等。

●数据抽象

把一个数据对象的定义(或描述)抽象为一个数据类型名。例如,在学生表中,可以抽象出学号、姓名、班级、学科编号等字段,并确定每一个字段的类型。2.继承

在前面已经说,面向对象编程有开发时间短的优势,其主要在于他可以进行继承,减少开发人员编写代码的工作量,并且易于修改和维护。

面向对象的继承允许在已经创建好类的基础上定义新的类,这个新类自动拥有已有类的属性和方法,并且可以增加自己特有的方法或者修改所继承的方法。

在新类继承了原始类的特性时,新类称为原始类的子类,而原始类称为新类的父类。而子类可以从它的父类中继承方法和属性等,并且类可以修改或增加新的方法使之更适合特殊的需要。

例如,长方形和正方形都可以继承形状类中的方法或者实例属性。其中,在形状类(父类)中,可以定义形状的两条不相等边为x和y,以可以计算形状面积的方法。

而当长方形(子类)继承形状(父类)的属性和方法时,可以声明自己的长或宽属性,将值赋予x和y,来计算长方形的面积。

而当正方形(子类)继承形状(父类)的属性和方法时,可以声明自己的边属性,并将值分别赋予x和y,来计算正方形的面积。

如果一个子类只继承了一个父类,称为单继承。如果一个子类继承了两个或更多的父类,则称为多重继承。

3.封装

目前,在成年人当中,手机基本上已经得到普及。而手机就是封装最好的举例,如用户通过按健操作,可以打电话、听音乐、听广播、看视频、上网等。而用户会关心操作后得到的效果,并不会关心手机如何拔出打电话、接收电话,或者播放视频等实现的过程,如图6-3所示。

用户

打电话

听音乐

播放视频

上网

运行的代码

图6-3 对象、封装和程序之间的关系

其实,程序封装的目的,就是将程序内容运行的代码与实际操作分开。即保护的程序的代码,又简化了用户的操作。

在面向对象中,实例化的对象是封装的最基本单位,并且可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。一旦定义了一个对象的特性,则有必要决定这些特性的可见性,即哪些特性对外部世界是可见的,哪些特性用于表示内部状态。在这个阶段定义对象的接口。

通常,应禁止直接访问一个对象的实际表示,而应通过操作接口访问对象,这称为信息隐藏。事实上,信息隐藏是用户对封装性的认识,封装则为信息隐藏提供支持。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。4.多态性

多态性(polymorphism)是面向对象的又一核心概念。面向对象中的多态性是一种机制,指一个操作名字或属性名字可以在多个类中定义,并且在各个类中有不同的实现。例如,打开一扇门、打开一扇窗、打开一张报纸、打开一件礼物等,每个类都能够清楚的知道自己的操作,如图6-4所示。

图6-4 不相同类中有相同名的操作,但各类中的操作不同

在处理类层次结构时,如果不把对象看作是属于某一特殊类型,而是将它看作是属于基类类型的,就可以在更高的抽象层次上编写出不依赖特定类型的代码。增添新类型来处理新情况是扩展面向对象程序最普通的方法,而这种不依赖特定类型

的高层次代码具有更好的可扩展性。

相关文档
最新文档