3.1 面向对象、类与对象的定义java面向对象的特征有哪些方面
本章目标
了解面向对象的基本概念
了解面向对象的三个主要特征
1.面向对象的基本概念
早期的程序经历了“面向问题”和“面向过程”的阶段,随着计算机的发展以及解决问题的复杂性的提高,以往的程序设计方法已经不能够适应现代的软件技术要求,于是,从20世纪70年代开始,相继出现了多种面向对象的程序设计语言,像C++、Smalltalk、Java等都是比较熟知的符合面向对象设计的语言。现在,面向对象的概念和应用已经超越了程序设计和软件开发,扩展到很宽的范围,如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
提示:实例了解“面向过程”和“面向对象的”概念。
下面通过一个实例讲解“面向过程”和“面向对象”的关系。
例如,现在有两位师傅“面向过程”和“面向对象”要设计一个首饰盒:
(1)“面向过程”师傅:用户提出哪些要求,师傅就针对用户的要求进行制作,直接制作出一个完整的整体,本身也不准备好做首饰盒所需要的工具,而是需要什么再单独拿什么。
(2)“面向对象”师傅:针对用户提出的要求进行分析,并将分析的结果设计与一张完整的图纸,与需求的用户确认,然后将一切的准备工作全部处理完之后再分块制作,最后将各个小的部分组装在一起。
从以上两个师傅的做法可以发现,“面向对象”师傅要比“面向过程”师傅更能适应用户的变化,而一旦用户有变化之后,“面向过程”师傅基本上要推倒重做,而“面向对象”师傅却可以适应变化。
2.面向对象的三大特征
对于面向对象的程序设计有封装、继承、多态3个主要特征。下面简单介绍这3种特征,在后面的内容中将会对这3个方面进行完整的阐述。
2.1封装
封装是面向对象的方法所应遵循的一个重要原则,它有两个含义,一是指把对象的属性和行为看成一个密不可分的整体,将这两者“封装”在一个不可分割的独立单位(即对象)中;另一层含义指“信息隐蔽”,把不需要让外界知道的信息隐藏起来,有些对象的属性及行为允许外界用户知道或使用,但不允许更改,而另一些属性或行为,则不允许外界知道,或只允许使用对象的功能,而尽可能隐蔽对象的功能实现细节。
封装机制在程序设计中表现为,把描述对象属性的变量及实现对象功能的方法合在一起,定义为一个程序单位,并保证外界不能任意更改其内部的属性值,也不能任意调动其内部的功能方法。
封装机制的另一个特点是,为封装在一个整体内的变量及方法规定不同级别的“可见性”即访问权限。
2.2 继承
继承是面向对象方法中的重要概念,并且是提高软件开发效率的重要手段。
首先拥有反映事物一般特性的父类,然后在其基础上派生出反映特殊事物的子类。例如已有汽车的父类,该类中描述了汽车的普通属性和行为,再进一步产生轿车、越野车、卡车、公交车等子类。这些子类继承于汽车父类不担拥有汽车父类中的全部属性和行为,还增加了各自所特有的属性和行为。
在Java程序设计中,已有的类可以是Java开发环境所提供的一批最基本的程序——系统类库,用户开发的程序类是继承这些已有的类。这样,系统类所描述过的属性及行为,即已定义的变量和方法,在继承产生的类中完全可以使用。被继承的类称为父类或超类,而经继承产生的类称为子类或派生类。根据继承机制,派生类继承了超类的所有成员,并相应地增加了自己的一些新成员。
面向对象程序设计中的继承机制大大增强了程序代码的可复用性,提高了软件的开发效率,降低了程序产生错误的可能性,也为程序的修改扩充提供了便利。
若一个子类只允许继承一个父类,则称为单继承;若允许继承多个父类,则称为多继承。目前许多面向对象程序设计语言不支持多继承。而Java语言通过接口(interface)的方式来弥补了由于Java不支持多继承而带来的子类不能享用多个父类成员的缺点。
2.3 多态
多态是面向对象程序设计的又一个重要特征。多态就是允许程序中出现重名现象。Java语言中含有方法重载与对象多态两种形式的多态。
  方法重载:在一个类中,允许多个方法使用同一个名字,但方法的参数不同,完成的功能也不同。
  对象多态:子类对象可以与父类进行相互转换,而且根据其使用的子类的不同,完成的功能也不同。
多态的特性使程序的抽象程度和简捷程度更高,有助于程序设计人员对程序的分组协同开发。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。