分享
 
 
 

面向对象程序设计札记(1)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

面向对象是一门很有趣的设计哲学,它试图依据人们对问题的看法来解释软体的架构,并力求将问题域中的问题映像到分析模型中,再转成相对的程序代码。目前使用面向对象技术的软件如雨后春笋般地蓬勃发展,因此无论你是不是专业的工程师,都应该对面向对象有所了解。

一、 面向对象的起源

现今,面向对象(Object-Oriented)一词已成为计算机业界的宠儿,然而在八十年前面向对象是作为认识世界的哲学思想被提出的。这种思想由本世纪最伟大的哲学家维特根斯坦阐述于1922出版的《逻辑哲学论》(Tractatus Logico-Philosophicus)这一著作中。

维特根斯坦认为:世界是由简单的基本的对象构成的,这就是面向对象设计的基石。

在计算机业界面向对象思想起源于六十年代的Simula语言,并在Smalltalk语言中得到完善和标准化。

二、 面向对象的模型

面向对象技术在计算机业界大行其道,并且越来越来流行,但是知其然者未必知所以然,那么面向对象设计的精髓是什么呢?

其实,面向对象是对现实世界的一种抽象。

我们知道现实世界是由物质(存在物、事物)构成的。在信息领域或者计算机业界我们由此抽象出:某一问题域是由对象构成的,这样对象就映射了现实世界中的存在物。

现实世界中事物是由它的性质和功能来表征的。例如,我的自行车是铝合金的车架,可以前进、刹车,铝合金就是自行车的性质,前进、和刹车就是自行车的功能。这些都是我们捕获(抽象)现实世界中存在物(事物、物质)的信息。对这些信息编码就成为了数据。数据是计算机能识别的信息。

我们终于可以把现实世界中的事物映射为信息领域中的对象,并进一步映射为数据领域中的类。

对象(Object)是对问题域中事物的抽象。因为对象一词出自于哲学又映射了现实世界中的事物,所以对象也就具有了事物所具有的特性:同一性。

那么,什么是同一性( identity)呢?

哲学家们认为事物都有一个共同的特点:它们都分别与自身同一,并且彼此相异。就是事物之为事物的必要条件之一。

三、 面向对象的编程

面向对象编程是一种高级的编程范型。我们使用面向对象的理论对问题域建模。

传统的软件设计方式是将问题抽象分析之后,采取适当的数据结构来表示,并以相对的程序函数算法来处理数据,两者看起来似乎独立而无关。减少了数据冗余,提高了数据的依赖性,整个程序围绕着函数的过程调用来组织设,这也是结构化程序设计的好处。但对于复杂的大型程序这种过程调用会使程序层次过于混乱。

而现在我们则以「对象」将相关的数据和过程函数结合为一体,使得两者的关系看起来更明白,这是面向对象程序设计最大的特点之一。

面向对象编程最基本的概念、机制是对象。对象是由属性(数据)和操作这些数据的方法(代码)组成的软件单元。

特性1:封装

对象的属性(数据)不能被对象的使用者直接访问,只允许通过由对象提供的方法访问数据,这就是封装。

通过封装对象成为一个统一的整体。对象既包含数据又包含操作数据的方法。

特性2:信息隐藏

对象的方法(行为、操作)可以公开被任何使用者使用;也可以私有被限定的使用者使用。

通过信息隐藏对象可以限定使用者的访问范围。

特性3:消息传递(方法的调用)

对象之间通过对象提供的接口协议进行通信的一种消息传递机制。与函数调用不同的是消息传递必须指定特定的对象。

特性4:类

对于具有类似性质、相同的行为、意义及共同关系的对象的描述就称为类。

浅白的说,类就是具相同性质对象的集合;反之,对于类而言,对象就是它的实例(instance)。

特性5:继承

对象的继承是将对象组织为从一般到特殊的层次结构。

特性6:多态

多态是被多个类定义的同名方法并在每个类中都有不同的实现,这样同一个变量就可以不同时间指向不同的类对象,并可以调用它们的同名方法的特性。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有