面向对象的一些概念及举例说明
2015-10-06 20:51
134 查看
面向对象方法具有以下4个要点:
(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象以某种方式组合而成。即面向对象的方法用对象分解取代了传统方法的功能分解。
(2)把所有对象都划分成各种对象类,每个对象类都定义了一组数据和方法。数据用于表示对象的静态属性,是对象的装填信息。
(3)按照子类(或称为派生类)与父类(或成为基类)的关系,把若干个对象类组合成一个层次结构的系统。
(4)对象彼此之间仅能通过传递消息互相联系,即封装性(黑盒子)。
综上所述:只有同时使用对象、类、继承和消息的方法才是真正面向对象的方法,否则只能称之为基于对象的方法。
对象的特点:
(1)以数据为中心;(2)对象是主动地;(3)实现了数据封装;(4)本质上具有并行性;(5)模块独立性好。
相关概念:
(1)类:类是对具有相同属性和行为的一个或是多个对象的描述。
(2)实例:由某个特定的类所描述的一个具体的对象,即对象是类的实例化。
(3)消息:要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。
【通常,一个消息由三个部分组成:接收消息的对象、消息名、零个或多个变元。eg:MyCircle.Show(Green)】
(4)方法:对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法,在C++语言中将方法称为成员函数。
【若是Circle类的对象能够响应让它在屏幕显示自己的消息Show(Green),那么在Circle类中必须给出成员函数Show(int Color)的定义,即给出成员函数的实现代码】
(5)属性:指类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类的每个实例都有自己的特有属性值。
【例如Circle类中定义的代表圆心坐标、半径、颜色等数据成员就是圆的属性】
(6)封装:把数据和实现操作的代码集中起来放在对象内部。即将对象看成是不透明的黑盒子,达到了信息隐蔽的目的,外人无法探知细节。
(7)继承:子类从基类中直接获得已经定义的数据和方法的机制,不用重复定义,有效减少了程序的冗余信息。
(8)多态:同样的消息在发送过程中,既可以发给父类对象,也可以发给子类对象,不分类等级。然而不同层次中的每个类按照各自的需要来实现这个行为(方法)。这样做能显著提高软件的可重用性和可扩充性。
(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象以某种方式组合而成。即面向对象的方法用对象分解取代了传统方法的功能分解。
(2)把所有对象都划分成各种对象类,每个对象类都定义了一组数据和方法。数据用于表示对象的静态属性,是对象的装填信息。
(3)按照子类(或称为派生类)与父类(或成为基类)的关系,把若干个对象类组合成一个层次结构的系统。
(4)对象彼此之间仅能通过传递消息互相联系,即封装性(黑盒子)。
综上所述:只有同时使用对象、类、继承和消息的方法才是真正面向对象的方法,否则只能称之为基于对象的方法。
对象的特点:
(1)以数据为中心;(2)对象是主动地;(3)实现了数据封装;(4)本质上具有并行性;(5)模块独立性好。
相关概念:
(1)类:类是对具有相同属性和行为的一个或是多个对象的描述。
(2)实例:由某个特定的类所描述的一个具体的对象,即对象是类的实例化。
(3)消息:要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。
【通常,一个消息由三个部分组成:接收消息的对象、消息名、零个或多个变元。eg:MyCircle.Show(Green)】
(4)方法:对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法,在C++语言中将方法称为成员函数。
【若是Circle类的对象能够响应让它在屏幕显示自己的消息Show(Green),那么在Circle类中必须给出成员函数Show(int Color)的定义,即给出成员函数的实现代码】
(5)属性:指类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类的每个实例都有自己的特有属性值。
【例如Circle类中定义的代表圆心坐标、半径、颜色等数据成员就是圆的属性】
(6)封装:把数据和实现操作的代码集中起来放在对象内部。即将对象看成是不透明的黑盒子,达到了信息隐蔽的目的,外人无法探知细节。
(7)继承:子类从基类中直接获得已经定义的数据和方法的机制,不用重复定义,有效减少了程序的冗余信息。
(8)多态:同样的消息在发送过程中,既可以发给父类对象,也可以发给子类对象,不分类等级。然而不同层次中的每个类按照各自的需要来实现这个行为(方法)。这样做能显著提高软件的可重用性和可扩充性。
相关文章推荐
- Lua编程示例(二):面向对象、metatable对表进行扩展
- C#中面向对象编程机制之多态学习笔记
- 浅谈Lua的面向对象特性
- Lua面向对象之类和继承浅析
- JavaScript面向对象的两种书写方法以及差别
- 浅谈c# 面向对象之类与对象
- C#面向对象特征的具体实现及作用详解
- C# 面向对象的基本原则
- 浅谈对c# 面向对象的理解
- Ruby面向对象编程详解
- php学习 面向对象 课件第1/2页
- PHP程序61条面向对象分析设计的经验小结
- 收集学习asp.net比较完整的面向对象开发流程
- javascript 面向对象编程 万物皆对象
- 不错的JavaScript面向对象的简单入门介绍第1/2页
- [推荐]javascript 面向对象技术基础教程
- javascript 面向对象的JavaScript类
- JavaScript中的面向对象介绍
- javascript实现面向对象类的功能书写技巧
- Javascript 面向对象 继承