时间:2024-05-04
马晓娟
面向对象是当今程序设计的主流,主要通过类和对象实现软件的各种功能。它从客观世界中的实物出发,尽可能通过人类自然的思维方式来认识和思考问题,抓住这些实物的特点,经抽象将它们定义为类,系统就是由不同类的对象所构成的。文章主要围绕面向对象的几个基本概念和特征对面向对象编程思想做了一个概述。
【关键词】面向对象 类 对象 封装 继承
1 引言
面向对象的思想不仅仅局限于软件设计,它已经拓展到更多的领域,如分布式系统、应用平台、交互式界面、数据库系统、人工智能、嵌入式软件系统等领域。作为计算机专业的求学者和从业人员,不管钻研或从事哪个方向的,都应该对面向对象编程思想有所了解。
通俗地讲,面向对象编程思想可以概括如下:系统中的一切事物都是对象;将属性和对属性执行的操作封装成为整体,这个封装体即是对象;属性和操作相同的对象抽象成为类,对象则是类的实体;发送消息可以使对象执行相应的操作;在现有类的基础上增加属性或操作可以构成另一个类,这是类的继承。
2 面向过程编程思想所存在的问题
2.1 可维护性差
用传统的面向过程方法所开发出的软件,由于可修改性较差,维护时产生的费用仍很高,造成其可维护性差。
2.2 重用性差
重用性指软件不用修改或略加修改就能重复使用。面向过程程序设计阶段软件重用性极差,引起软件危机,软件工程这一学科由此而诞生,提高重用性是软件工程的重要目标,而面向对象的继承机制很好地解决了软件重用性这一问题。
2.3 软件功能与用户需求不一致
用传统的结构化方法开发大型软件系统涉及各种不同领域的知识,在开发需求模糊或需求动态变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。
3 面向对象的重要概念
3.1 类
类是属性与操作相同的对象的抽象。因此,类是对象的抽象,对象是类的实例。 例如“人”是所有人的一个抽象的总称,他是一个类,“鲁迅”是具体的一个人,这就是个对象。再如“班级”是个抽象的类名,“计算机系13级软件1班”是具体的一个班级对象。
类的属性用来表示对象的各种特征,用数据结构来描述。如长方体有三个基本属性长、宽、高;时间有三个基本属性小时、分、妙;人的基本属性有姓名、年龄、性别、工作单位等。在不同的处理需求下对于同一事物的属性描述是不一样的。
类的操作是对于对象行为的描述,包括操作的名称和操作实现过程。
3.2 对象
对象是任何被人类研究的实物,不管是简单的实数还是结构复杂的核潜艇都可以认为是对象。除了具体的事物,对象还能表示抽象的规则、计划。
3.3 对象的属性和操作
对象的属性用各类数据描述。 如一个餐桌的属性包括长、宽、高、材质和颜色,前三种属性值用实型数据表示,后两种属性值用字符串表示。对象的操作用于改变或访问对象的属性。 如一个餐桌对象有一个求桌面面积的操作,这个操作需要访问此餐桌的长和宽。对象将其属性值与操作结合在一起形成一个整体,将这个整体封装在对象中。
3.4 消息和方法
当要求对象执行某种操作时,必须由外界向对象发送一条消息,消息包括对象名和方法名,有时还要加若干参数。类中操作的实现过程叫做方法,一个方法有方法名、参数、方法体。
3.5 类与类的特殊关系
在现实世界中存在很多类,有些类之间是毫无关联的,但有些类之间具有一定的特殊关系,有两种这样的关系:继承关系和组合关系。
如果现有一个定义好的类是“人”,还需要再定义一个“男人”类,可以不用对“男人”类进行重新定义,而是选择在“人”这个类的基础上增加一个性别属性即可。“人”称为父类或基类,“男人”称为子类或派生类,这两个类的关系叫做继承,可以说这两个类是一种“是”的关系,即男人是人。
如果现有一个“日期”类,还要定义一个“学生”类,属性中要体现出生日期,那也可以不用在“学生”类中重新定义出生日期这一属性,可以直接用已有的“日期”类来定义生日,这两个类的关系叫做类的组合,可以说这两个类是一种“有”的关系,即每个学生都有生日,而生日是日期信息。
4 面向对象的显著特征
4.1 封装
封装很好地实现了信息隐藏,可以达到数据保护的目的,即对象的属性一般不被外界直接访问,而是通过对象的方法来访问,从而保护了对象的属性,为软件的模块性提供了保证。另外,类定义将外部接口(用户可见)与内部实现(外界不可见)分离,对象的方法其内部实现细节对外界是不可见的,用户只管调用外部接口完成对象的一系列操作。
4.2 继承
子类继承父类的所有属性和方法,避免了许多重复性的工作,在一个现有类的基础上新增一些属性或方法级大地减少了软件设计的工作量。继承是面向对象编程语言区别于面向过程编程语言的最显著的特点。如果子类只有一个父类称为单继承,子类存在多个父类叫做多重继承。在软件设计工作中,继承是信息分类与组织的切实可行的方法,它简化了创建类的过程,提高了软件的可重用性,使得软件的可扩充性大大加强。
4.3 多态
多态指相同的方法作用于类型不同的对象上可以得到不一样的结果。 每个对象通过满足自身意愿的方式响应同样的消息。例如在听到统一的上课铃声后,老师们各自进入自己任课的班级,而不是进入同一个班级,并且所讲的内容也都不同。 多态性使得软件的可重用性和灵活性进一步增强了。
5 结语
面向对象编程思想以其独特的形式将数据以及在数据之上的操作细节封装在类中,改变了面向过程编程思路的程序结构和整体格局,由于其继承性可以加快软件开发速度,并增强软件可重用性,便于软件扩充功能,多态性可提高软件设计的灵活性,故从过去较长时间至今一直以来仍占据着程序设计的主流地位,也一直是衡量各层次程序员与计算机从业人员业务素质的标准。
参考文献
[1]彭莉芬、陈俊生.浅析面向对象的三大特征[J].福建电脑,2010(05).
[2]谭大海、刘兴勇.面向对象分析与设计[J]. 科技信息,2014(10).
[3]张忠华、李德蓉、肖章林.浅析面向对象程序技术的特征和思想[J].装备制造与教育,2014(01).
作者单位
内蒙古自治区乌兰察布市集宁师范学院 内蒙古自治区乌兰察布市 012000endprint
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!