魔法导论无弹窗 第一百六十九章 面向对象编程
西北实验室正对大门的嶙峋怪石不知道什么时候围了一圈花坛,一些青色的花苗生长在这里,开着淡紫色的小花,远看去仿佛星辰一般。李力和樾樾两个人坐在花坛边沿,一人一手拿着一瓣黄色的瓜果正在唏哩呼噜吃着,两人中间放着一个果盘,码着整整齐齐的瓜皮,和剩下不多的西瓜,看样子两人在这里呆了有一阵了。
真正优雅的贵族是不会像一个土包子一样吃个瓜吃出猪叫,樾樾原本也对此嗤之以鼻,但是架不住这种吃法是真的爽,吃瓜时不汁水飞溅不足以表达对瓜的尊敬,把脸埋进去更是一种信仰。
当然如果没有岗哨里正在站岗的兵哥哥的白眼就更完美了。
将最后一瓣瓜一分为二递给樾樾一半,李力终于将吃瓜的速度满了下来,西部的酷暑也通过这只瓜勉强消解了一些。
“星轨实验室的老头给来了一封推荐信,你知道不?”李力问道。
“什么信?”
“在我办公桌上,除了一封信以外还有一叠论文。”
话音刚落,两人面前闪过一丝扭曲,一封信和一叠论文从空气中“挤”了出来。
不用说这肯定是樾樾干的,随着她能力的越来越强大,只要精神力能够覆盖的地方都能够进行物体的随意移动,颇有点空间大能力者的风范,让李力非常羡慕。
大冬天可以不用从被窝里钻出来拿遥控器了。
李力看了看,空出的手随意在衣服上抹了抹,翻开面前漂浮的论文,然后指着其中一个段落对樾樾说,“你看看这个。”
论文飘到樾樾面前,她一边吃着瓜,一边一目十行地看了起来,不一会便抬起头来,奇怪地对李力说到:“这不就是我们正在做得吗?”
“不完全是,虽然我们实验室也在设计一套完善的程序设计语言,但是更偏向于程式化的指令简写,而不是高度抽象的语言,说实话,我也对我们实验室那几位设计出来的语言并不满意,因为实在是太过于具体。”
“但是你又不告诉他们怎么去设计抽象。”樾樾无奈的看了他一眼。
李力将吃剩的瓜皮扔在果盘里,拿袖口抹了抹嘴,灰扑扑的衣服将一点尘土留在了他的嘴边,但他毫不在意,“之前给他们出过一个示例,也专门讨论过这个事情,但是很显然他们并没有这种抽象的思维,之后又陷入具体的泥潭里拔不出来了。”
樾樾将吃剩的瓜皮码在一起,凭空招出一道水流冲洗干净双手,那道水流冲洗完她的双手后飘到李力面前,弯成一个问号。
李力摆摆手,示意他现在不洗,等会儿去洗澡。
水流划过一道优美的弧线,飘到花坛上方,变成一串串水滴,滋润下面的花花草草。
“这位就有你需要的抽象思维了?”樾樾问道。
“嗯,所以我还是挺惊讶的,没想到仅仅是拿我们淘汰的旧计算机捣鼓了半天,居然还启发出了一个天才。”
没错,他们给星轨实验室所做的可编程符文阵买三赠一酬宾大优惠,其实用的是上一代的计算机,而现在他们已经更新换代成了执行速度更快,内存容量更大,兼容符文更多的新一代计算机。
不过这也不算欺骗消费者,即使是上一代计算机也至少领先市场一个世代,足够满足他们对射电望远镜的模组编辑需求。
这也算是废物利用。
听了李力的话,樾樾将目光重新聚焦到了论文上,认真地看了起来。
整篇论文对编程语言的语法介绍并没有多少,很大篇幅集中在自己如何设计一门编程语言上,其中不仅仅有对原本语法的归类,更集中探讨了对物质世界实体与属性的基本概念讨论,简单来说就是。。。
“面相对象编程啊。。。没想到一个才接触没多久的小姑娘,居然能提出这么伟大而先进的概念。”李力赞叹道。
樾樾被这个赞美吓了一跳,虽然很多时候她很难将自己又馋又懒又爱玩的男朋友跟那个在魔法界领域挥斥方遒的大魔导师重合在一起,但是她也能明白能被李力称为伟大而先进,那可真的是不得了的评价。
然而更令人惊讶的还在后面,李力想了想,然后摇了摇头,“如果仅通过抽象定义面向对象中的实体和属性,那么也不过如此,但是这里的抽象却能够通过魔法进行具象化,所以,这不仅仅是伟大而先进,简直具有划时代的意义了。”
樾樾越听越懵,想了半天都未解其意,只好委婉地说道:“没听懂,说清楚。”
“面相对象概念是很简单的,就是万物皆对象的意思,每个对象都有两种东西,属性和方法。”
“比如呢?”
“比如一个人是一个对象,那么他的属性是什么呢?是他的姓名,性别,年龄,国籍这种描述他本身状态的东西,而方法则是他能够做的事情,行走,吃饭,睡觉等等。”
“就是名词和动词的区别咯?”
“额。。。可以这么说吧”,李力想了想,虽然感觉不对,但是又不知道哪儿不对,“举一个更接近我们工作中的例子,我们在设计传输模块的时候,如果将模块本身看作一个对象,那么其端口,传输地址,选择信道和编码类型就是它的属性,而开启传输,挂起传输,结束传输就是它的方法。”
“嗯,描述清晰,继续。”
“在面向对象的体系中,最主要的还有一个,那就是接口,用来表示一个物体能够做什么事情的特殊对象。”
“接口?”
“没错,如果用语言来描述他们,接口更像是指‘可被如何的’。”
“什么意思?”
“走是一个行为,但是很显然人走路的方式和动物走路的方式并不一样,人是两条腿,动物是零条,两条和四条,然而只要是动物就都有走这个行为,于是我们可以一个接口叫‘可以走路’的接口,里面只有一个行为叫‘走’,但是这个这个行为没有具体细节。
“人和其他动物都可以继承这个接口,但是到底是用几条腿走路就取决于具体每一个动物的实现。”
“但是。。。这么设计有什么用呢?”樾樾问道。
“如果仅仅是一种定义,那么确实没有多大用处”,李力笑了笑,“但是这个世界上所有的对象都是交互的,不可能单独存在,当动物遇到危险事件的时候,人可以用双脚走,猫狗可以用四只脚走,鱼可以用零只脚走,因为他们都继承了‘可以走路’这个接口,从而顺利地躲避危险。
“但是很显然,植物不能走,因为它们没有继承这个接口,这是动物专用接口。”
樾樾想了想,然后指出,“那这么说来,这个接口不能叫‘可以走路’,而是‘可以移动’,里面的方法也应该是‘移动’才对,毕竟鱼走得不是路,游动也并不是走路。”
李力听了这话,突然笑了起来,“这个就是抽象化,恭喜你,你现在已经面向对象编程了。”
“所以,你说的划时代的意义是指什么呢?”樾樾又问。
李力沉默了下来。
他望着远处碧蓝如洗的天空,一望无垠的红土,眼睛却偶尔聚焦到虚无的地方,但是他知道,无论他聚焦到了哪里,在他看不到的地方,无数游离的魔法元素正在飘荡,作用或消失。
许久,他才缓缓说道:“如果没有魔法,面相对象的概念也仅仅是个概念,他能够以万物皆对象的方式描述世界上的一切,却无法改变这个世界,就像植物无法继承‘可以移动’这个接口,因为没有一个伟大的存在来编写植物移动的实例方法。”
樾樾挑了挑眉头,她似乎有些明白了李力想要说的,“魔法可以强行赋予一个对象它本身不继承的接口,来获得它本身没有的能力,就像通过‘应激’符文赋予植物运动能力一样。”
“之前我也想过这个问题,难道符文确实是一种编辑世界本身的编程语言?但是我现在又开始怀疑,或许符文仅仅是一种接口,用符文催动魔法作用于物体的时候,就像是将原本没有继承某个接口的物体继承这个接口,而实例则由魔法元素来进行编写。”
樾樾用一分钟的时间仔细地琢磨清楚了李力的话,然后倒吸一口凉气,满脸不敢相信地说:“小伙子你的脑洞开得也太大了点吧。”
“。。。这不叫脑洞,这叫魔法理论研究”,李力翻了个白眼,“所以我的意思是,不如我们把这个姑娘拐到这里来帮我们研究理论魔法,怎么样?”
“咦?推荐信不是给我们的吗?”
“是推荐到大学本部的”,李力摆摆手,“不过问题不大,就说这里是北方魔导工业高等学校魔导计算机分院好了。”
樾樾:“。。。把人家一小姑娘拐到这种鸟不拉屎的地方来,你就不怕被他爸爸打死?”
“怕什么,反正有你。”
话音刚落,一声怒吼从主楼后面响起,划破长空而来,声音愤怒而凄惨:
“啊!!!!!!!老子的优育三号!!!!!!老子辛辛苦苦种出来的改良西瓜!!!!!!!老子的二毛啊!!!!!!是谁!!!!!!我要扒了你的皮!!!!!!!!!!”
“卧槽,被发现了!”听到这声怒吼,李力瞪大双眼,一把拉着樾樾的手,和她一起蹲了下来,借着花坛的掩护和巨石的缝隙小心翼翼地向后看去,看到卫青还没有发现这两个偷瓜贼,连忙将盛着瓜皮的盘子塞到樾樾手里,“快快快。。。塞到你随身空间里。”
“原来这个瓜是用来做实验用的吗?”樾樾有些古怪地看向自己的吃货男朋友,“你早就知道?”
“没事没事,反正他瓜田里还有大毛三毛四毛五毛六毛七毛和尼古拉斯·施瓦辛格·汉尼拔,少这么一个也没事。”
“等等,最后一个名字是怎么回事?”
“我给起的,不过现在最主要的还是别让他发现。。。”
“不是有我么,你还怕他扒了你的皮?”
“少废话,因为我理亏!甭管了,趁他没发现赶紧撤,走走走走。。。”一边说着,一边拉着樾樾的手撤离了案发现场,向远处流窜而去。