• 实时天气:多伦多 28°
    温度感觉: 27°
  • 实时天气:温哥华 21°
    温度感觉: 23°
  • 实时天气:卡加利 28°
    温度感觉: 26°
  • 实时天气:蒙特利尔 24°
    温度感觉: 28°
  • 实时天气:温尼伯 24°
    温度感觉: 24°
查看: 444|回复: 0
打印 上一主题 下一主题

面向对象的语言:汉语

跳转到指定楼层
楼主
发表于 2002-3-8 17:13:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
面向对象语言的三大特性:封装,继承和多态,汉语全都具有。
先说封装。封装的流行定义是掩藏实现细节。
现在来看看汉语怎么实现封装的。
汉语语言具有表达的言外之意(掩藏实现)的功能。比如,单位分房,你够条件,领导说要研究研究,这是给了你一个 INTERFACE ,但是他究竟怎么研究的(实现, IMMPLEMENT ),就只有天知道了。这个特点所有语言中都存在。
再说继承。继承就是具有公共特点的事物共享一个界面( INTERFACE )比如汉语的车字,他包含了汽车,卡车,自行车等交通工具的共同特点(有轮子,需要人控制方向,需要能源驱动,可以前行,后退,停止等)而英语就差点,汽车是 CAR ,自行车就是 BYCYCLE ,卡车就是 TRUCK 了。这么一对比,汉语的表达更具有易读行,可理解性并易于维护,这些正是面向对象方法要达到的目的。
最后说多态。多态就是用一个界面( INTERFACE )在不同的上下文( CONTEXT )中表示不同的对象( OBJECT )。
多态是面向对象方法中比较复杂和难于掌握的东西。
现举 3 例。
1 )汉语中,我说“我去拿我的车去”。如果在加拿大这个上下文中,自然指的是汽车(听话者知道我只有考肉拉),如果在中国这个上下文中,自然指的是自行车(听话者知道我只有凤凰牌)而换了英语,“ I pick up my car ”,可能是 CAR ,也可能是 TRUCK ,也可能是 PICK-UP ,但是都没有汉语这么明显的形式上的继承性。
2) 在汉语中,动词没有时态,我做功课,我明天做功课,我昨天做了功课……而英语(或西方语言)中,则必须写成 I do my homework, I'll do my homework tomorrow, I did my homework yesterday ……这里的做没有时态变化,做这个动作词只通过“做”这个界面( INTERFACE )来表达,完全根据运行时上下文( RUNTIME CONTEXT ),来判断时态,最多做一个类型转换( CAST ),用“了”来表示过去。
3) 在汉语中,人称代词没有格的变化。
我叫他。 他看电影 ……
而英语 ( 或西方语言 ) 中,则必须写成
I call him. He watches movie ……
这里的做没有格的变化,他这个对象( OBJECT )只通过“他”这个界面( INTERFACE )来表达,完全根据运行时上下文( RUNTIME CONTEXT )来判断主宾(格)。
综上,古老的汉语是一个面向对象的完全现代化的先进的交流工具。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

快速回复 返回顶部 返回列表