博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象
阅读量:4571 次
发布时间:2019-06-08

本文共 2163 字,大约阅读时间需要 7 分钟。

概念

⑴ 。
是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示 的规则、计划或事件。[2]  
⑵ 的状态和行为。
具有状态,一个对象用数据值来描述它的状态。
还有操作,用于改变对象的状态,对象及其操作就是对象的行为。
实现了数据和操作的结合,使数据和操作 于对象的统一体中[2]  
⑶ 。
具有相同特性( )和行为(功能)的 的 就是类。因此, 的 是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种 。
类具有属性,它是 的状态的 ,用 来描述类的属性。
类具有操作,它是 的行为的 ,用操作名和实现该操作的方法来描述。[2]  
⑷类的结构。
在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。
①一般--具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。
②整体--部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。[2]  
⑸消息和方法。
之间进行通信的结构叫做消息。在 的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的 名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的 所知道的 名,或者是所有对象都知道的全局 名。[2]  
类中操作的实现过程叫做方法,一个方法有方法名、返回值、参数、方法体。

特征

⑴ 唯一性。
每个 都有自身唯一的标识,通过这种标识,可找到相应的 。在 的整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。[2]  
⑵ 性。
性是指将具有一致的 (属性)和行为(操作)的对象 成类。一个类就是这样一种 ,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。[2]  
⑶ 。
是子类自动共享父类 和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。[2]  
继承性是 语言不同于其它语言的最重要的特点,是其他语言所没有的。
在类层次中,子类只 一个父类的 和方法,则称为单重继承。
在类层次中,子类 了多个父类的 和方法,则称为 。
,JAVA、VB、NET、Objective-C均仅支持单继承,注意在C++多重继承时,需小心二义性。
在 中,类的 使所建立的软件具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,它简化了 、类的创建工作量,增加了代码的可重用性。
采用 ,提供了类的规范的等级结构。通过类的 关系,使公共的特性能够共享,提高了软件的重用性。[2]  
⑷ (多形性)
是指相同的操作或函数、过程可作用于多种类型的 上并获得不同的结果。不同的 ,收到同一消息可以产生不同的结果,这种现象称为 。
允许每个 以适合自身的方式去响应共同的消息。
增强了软件的灵活性和重用性。[2]  

要素

⑴抽象。
是指强调实体的本质、内在的属性。在系统开发中, 指的是在决定如何实现 之前的对象的意义和行为。使用 可以尽可能避免过早考虑一些细节。
类实现了 的数据(即状态)和行为的 。[2]  
⑵ 性( )。
性是保证软件部件具有优良的模块性的基础。
面向 的类是 良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的 提供保护。
是 的最基本单位。 防止了程序相互依赖性而带来的变动影响。面向 的 比传统语言的封装更为清晰、更为有力。[2]  
⑶共享性
在不同级别上促进了共享
同一类中的共享。同一类中的 有着相同 。这些 之间是结构、行为特征的共享关系。
在同一应用中共享。在同一应用的 中,存在 关系的各相似子类中,存在 和行为的继承,使各相似子类共享共同的结构和行为。使用 来实现代码的共享,这也是面向 的主要优点之一。
在不同应用中共享。面向 不仅允许在同一应用中共享信息,而且为未来目标的可重用设计准备了条件。通过类库这种机制和结构来实现不同应用中的信息共享。[2]  
⒋强调对象结构而不是程序结构
 
面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的实例。[2]  
已经被证实的是,面向对象程序设计推广了程序的灵活性和可维护性,并且在大型项目设计中广为应用。 此外,支持者声称面向对象程序设计要比以往的做法更加便于学习,因为它能够让人们更简单地设计并维护程序,使得程序更加便于分析、设计、理解。反对者在某 些领域对此予以否认。[2]  
当我们提到面向对象的时候,它不仅指一种程序设计方法。它更多意义上是一种程序开发方式。在这一方面,我们必须了解更多关于面向对象系统分析和面向对象设计(Object Oriented Design,简称OOD)方面的知识。

转载于:https://www.cnblogs.com/shark1100913/p/5005376.html

你可能感兴趣的文章
TCHAR和CHAR类型的互转
查看>>
常用界面布局
查看>>
C语言—— for 循环
查看>>
IBM lotus9.0测试版即将公测
查看>>
xml常用方法
查看>>
Cube Stacking(并差集深度+结点个数)
查看>>
AndroidStudio3更改包名失败
查看>>
jq 删除数组中的元素
查看>>
js URL中文传参乱码
查看>>
Leetcode 367. Valid Perfect Square
查看>>
UVALive 3635 Pie(二分法)
查看>>
win系统查看自己电脑IP
查看>>
Backup&recovery备份和还原 mysql
查看>>
一道面试题及扩展
查看>>
Unity 3D 我来了
查看>>
setup elk with docker-compose
查看>>
C++ GUI Qt4学习笔记03
查看>>
Java基础回顾 —反射机制
查看>>
c# 前台js 调用后台代码
查看>>
2017-02-20 可编辑div中如何在光标位置添加内容
查看>>