2020-12-05 面向对象语言

想到面向对象,最大特征就是面向对象语言都能定义类,类是什么?类即模糊,类即抽象,类即是人类日常语言的基石,模糊即基石,抽象即基石,是“人类日常语言”的基石,而非广义的”语言“的基石。什么是广义的“语言”,我认为广义的“语言”即信息,什么是“信息”,信息即是一定能量为载体的符号集合,由A发送由B接收。只有“一定能量为载体的符号集合”是信息吗,不是,一定要有“由A发送由B接收”这个事件,一朵花,你不看他,它就不是花。这听起来就像在哥白尼时代以前,说地球围绕太阳转那么不可思议。“人类日常语言”怎么定义呢,以人感官可识别的载体(比如纸、屏幕、传播声音的空气)的按人类社会某种日常语言的语法拼接的符号,由A发送由B接收。“按人类社会某种日常语言的语法”是什么意思呢,就是以类为基石、以模糊为基石的人类日常交流沟通的语言。为什么人类日常语言是以类、以模糊为基石的呢?

如果我们要完全描述一个苹果,我们要把他包含的所有粒子的状态信息收集起来,虽然这个数目是有限的,但可能这篇文章的字数都没有这个数目(十进制)的位数多,那连一个苹果都没有任何人能把它精确描述出来,我们只能妥协,去模糊地描述苹果,”苹果“一词即是对苹果这个事物的模糊描述,这个模糊,使得世界可以描述。由于是模糊描述,所以必有其缺陷。由A发送由B接收,我如果与从没有见过、吃过苹果的人去讨论苹果,如果你与一个盲人讨论颜色,那他们是完全理解不了的,因此语言与信息也就无效了,也就失去了意义,因为B无法理解,无法接收。即便两个人对同一个事物有体验,由于每个人的体验不同,通过语言交流时,因为语言是模糊的,所以两人仍会产生互相不理解的情况。

类是什么呢?类是在模糊中寻求相对的精确。仍拿苹果举例,”苹果“是一个类,因为我们对”苹果“有一个定义,这个定义,即是划定了什么是”苹果“,什么不是“苹果”,能区分“是与不是”不就精确了吗,类不是可以帮人去计较“苹果”有多酸或有多甜,类就帮人判断一个东西是与不是。面向对象语言的类都是一个树状的继承关系,都继承自Object,object翻译成中文我认为是“事物”,一切皆事物。为什么类还会有继承关系呢,这一定不是巧合。因为类只能帮我们判定是与不是,因此我们是把模糊了的真正的舍弃,你想吃苹果的时候,不会跟你妈说“给我个国光”(除非你只吃国光苹果),通常我们想要的并不那么精确,我们忽略大小、味道、颜色、口感,类的层次结构,实际是我们模糊的程度不同的一种高效体现。为什么是“高效体现”,假设没有这种层次结构,也就是没有“继承”,那么我不但要把国光区别于其他苹果的定义包含在“国光”的定义里,还要把苹果区别于其他水果的定义包含在“国光”里,还要把“水果”区别于其他食物的定义包含在“国光”里,直到把“事物”区别于“非事物”的定义包含到“国光”里,这将带来灾难,假设一个人理解了苹果,去理解”国光“,需要把苹果重新理解一遍。正是类的继承简化了我们的理解,我们只需理解国光区别于其他品种苹果的定义,就理解了国光。"类是在模糊中寻求相对的精确"的”相对“又是什么,“相对”于什么,相对于我们拥有相同的语法、语境,或者按流行的说法“领域”,才能获得这种精确。

面向对象编程语言,即是帮我们在编程中,能够使用与日常语言的思维方式一致的思维方式、描述方式创造了条件。如果招聘招编写业务系统代码的人,我不知道各种面向对象题目意义何在,如果一个人,能够用日常的思维方式,找到正确的描述方法,即可利用面向对象语言写出好的程序,所以考试要考察的,应该是考察这个人有没有一个日常思维的思考能力,去想巧妙地描述方式解决现实问题,而不是考一些语法问题,用过什么框架的问题,一些死板的面向对象的问题,招工具人倒是可以考这些。

你可能感兴趣的:(2020-12-05 面向对象语言)