英语词汇的面向对象特性分析

来源:互联网 发布:mac os 10.11 cdr 编辑:程序博客网 时间:2024/06/11 13:33


突然想到,英语这种语言体现了面向对象的思想,而中文汉字体现的则是面向结构的思想。于是做了一些分析比较。纯属娱乐,欢迎拍砖。^_^

分析开始~


英语虽然也是一种语言,但跟编程语言还是很大的不同。这里的分析,主要集中在对英语词汇的分析,而不是语法本身。


首先,确定英语词组在OOP的框架下的几个概念:

类:单词

基类:整个类体系有n , adj ,v , adv  几大基类,所有类都隐式的继承自这几个基类。

对象:出现在具体语境的使用中的单词。

继承:诸如英语单词的前缀、后缀等。另有,所有形容词隐式的继承自基类adj , 所有的动词隐式的继承自基类v , 所有副词隐式的继承自基类adv ...

类间关系(类似于UML中的association , aggregation 和 composition): 主谓宾结构,各种句式

面向对象的特征分析:

一) 封装性

指能够把一个实体的信息、功能、响应都装入一个单独的对象中的特性。用户不用关心类的工作机理就可以使用它,所有对数据的访问和操作都必须通过特定的方法,否则便无法使用,从而达到数据隐藏的目的。

英语单词很好的实现了封装性。相比汉语词组的结构化组成,英语单词是固化的。几乎无法在一个英语单词中增加一笔,让它编程另外一个单词,但这在面向结构的汉语词组中则容易实现。

1.例如:

对于结构化的汉语词组,我们可以直接添加几笔,让词组变换一个新的意思: “天心取米” --> “未必敢来” (太经典了,记得小学的寒假作业上看到过)

对于面向对象的英语词组,则难以下手 = =.

2.又例如

汉语中,替换一个字,就能很好的变换词组的意义:“战斗机” --> “战斗”,而英语中,战斗机就是“flighter ”,难以变换。


二) 继承

继承的方法允许在不改动原程序的基础上对其进行扩充,这样使得原功能得以保存,而新功能也得以扩展。这有利于减少重复编码,提高软件的开发效率。

英语单词的前缀后缀很好的实现了对英语单词的继承。
例如:
comfortable --> uncomfortable , 这里uncomfortable 继承了comfortable, 实现了 un- 接口。
convenient --> inconvenient , 这里 inconvenient 继承了 convenient,并实现了 in- 接口。

甚至,英语单词还实现了复杂的多重继承关系
some + how --> somehow 

三) 多态

英语词组中的多态实现跟传统的OOP多态差别较大。英语词汇中的多态的表现形式位时态的变化。

比如:

draw  --> drew --> drawn.


原创粉丝点击