这也算是废物利用。
听了李力的话,樾樾将目光重新聚焦到了论文上,认真地看了起来。
整篇论文对编程语言的语法介绍并没有多少,很大篇幅集中在自己如何设计一门编程语言上,其中不仅仅有对原本语法的归类,更集中探讨了对物质世界实体与属性的基本概念讨论,简单来说就是。。。
“面相对象编程啊。。。没想到一个才接触没多久的小姑娘,居然能提出这么伟大而先进的概念。”李力赞叹道。
樾樾被这个赞美吓了一跳,虽然很多时候她很难将自己又馋又懒又爱玩的男朋友跟那个在魔法界领域挥斥方遒的大魔导师重合在一起,但是她也能明白能被李力称为伟大而先进,那可真的是不得了的评价。
然而更令人惊讶的还在后面,李力想了想,然后摇了摇头,“如果仅通过抽象定义面向对象中的实体和属性,那么也不过如此,但是这里的抽象却能够通过魔法进行具象化,所以,这不仅仅是伟大而先进,简直具有划时代的意义了。”
樾樾越听越懵,想了半天都未解其意,只好委婉地说道:“没听懂,说清楚。”
“面相对象概念是很简单的,就是万物皆对象的意思,每个对象都有两种东西,属性和方法。”
“比如呢?”
“比如一个人是一个对象,那么他的属性是什么呢?是他的姓名,性别,年龄,国籍这种描述他本身状态的东西,而方法则是他能够做的事情,行走,吃饭,睡觉等等。”
“就是名词和动词的区别咯?”
“额。。。可以这么说吧”,李力想了想,虽然感觉不对,但是又不知道哪儿不对,“举一个更接近我们工作中的例子,我们在设计传输模块的时候,如果将模块本身看作一个对象,那么其端口,传输地址,选择信道和编码类型就是它的属性,而开启传输,挂起传输,结束传输就是它的方法。”
“嗯,描述清晰,继续。”
“在面向对象的体系中,最主要的还有一个,那就是接口,用来表示一个物体能够做什么事情的特殊对象。”
“接口?”
“没错,如果用语言来描述他们,接口更像是指‘可被如何的’。”
“什么意思?”
“走是一个行为,但是很显然人走路的方式和动物走路的方式并不一样,人是两条腿,动物是零条,两条和四条,然而只要是动物就都有走这个行为,于是我们可以一个接口叫‘可以走路’的接口,里面只有一个行为叫‘走’,但是这个这个行为没有具体细节。
“人和其他动物都可以继承这个接口,但是到底是用几条腿走路就取决于具体每一个动物的实现。”
“但是。。。这么设计有什么用呢?”樾樾问道。
“如果仅仅是一种定义,那么确实没有多大用处”,李力笑了笑,“但是这个世界上所有的对象都是交互的,不可能单独存在,当动物遇到危险事件的时候,人可以用双脚走,猫狗可以用四只脚走,鱼可以用零只脚走,因为他们都继承了‘可以走路’这个接口,从而顺利地躲避危险。
“但是很显然,植物不能走,因为它们没有继承这个接口,这是动物专用接口。”
樾樾想了想,然后指出,“那这么说来,这个接口不能叫‘可以走路’,而是‘可以移动’,里面的方法也应该是‘移动’才对,毕竟鱼走得不是路,游动也并不是走路。”