第一百六十九章 面向對象編程

  西北實驗室正對大門的嶙峋怪石不知道什麼時候圍了一圈花壇,一些青色的花苗生長在這裡,開著淡紫色的小花,遠看去仿佛星辰一般。

  李力和樾樾兩個人坐在花壇邊沿,一人一手拿著一瓣黃色的瓜果正在唏哩呼嚕吃著,兩人中間放著一個果盤,碼著整整齊齊的瓜皮,和剩下不多的西瓜,看樣子兩人在這裡呆了有一陣了。

  真正優雅的貴族是不會像一個土包子一樣吃個瓜吃出豬叫,樾樾原本也對此嗤之以鼻,但是架不住這種吃法是真的爽,吃瓜時不汁水飛濺不足以表達對瓜的尊敬,把臉埋進去更是一種信仰。

  當然如果沒有崗哨里正在站崗的兵哥哥的白眼就更完美了。

  將最後一瓣瓜一分為二遞給樾樾一半,李力終於將吃瓜的速度滿了下來,西部的酷暑也通過這隻瓜勉強消解了一些。

  「星軌實驗室的老頭給來了一封推薦信,你知道不?」李力問道。

  「什麼信?」

  「在我辦公桌上,除了一封信以外還有一疊論文。」

  話音剛落,兩人面前閃過一絲扭曲,一封信和一疊論文從空氣中「擠」了出來。

  不用說這肯定是樾樾乾的,隨著她能力的越來越強大,只要精神力能夠覆蓋的地方都能夠進行物體的隨意移動,頗有點空間大能力者的風範,讓李力非常羨慕。

  大冬天可以不用從被窩裡鑽出來拿遙控器了。

  李力看了看,空出的手隨意在衣服上抹了抹,翻開面前漂浮的論文,然後指著其中一個段落對樾樾說,「你看看這個。」

  論文飄到樾樾面前,她一邊吃著瓜,一邊一目十行地看了起來,不一會便抬起頭來,奇怪地對李力說到:「這不就是我們正在做得嗎?」

  「不完全是,雖然我們實驗室也在設計一套完善的程序設計語言,但是更偏向於程式化的指令簡寫,而不是高度抽象的語言,說實話,我也對我們實驗室那幾位設計出來的語言並不滿意,因為實在是太過於具體。」

  「但是你又不告訴他們怎麼去設計抽象。」樾樾無奈的看了他一眼。

  李力將吃剩的瓜皮扔在果盤裡,拿袖口抹了抹嘴,灰撲撲的衣服將一點塵土留在了他的嘴邊,但他毫不在意,「之前給他們出過一個示例,也專門討論過這個事情,但是很顯然他們並沒有這種抽象的思維,之後又陷入具體的泥潭裡拔不出來了。」

  樾樾將吃剩的瓜皮碼在一起,憑空招出一道水流沖洗乾淨雙手,那道水流沖洗完她的雙手後飄到李力面前,彎成一個問號。

  李力擺擺手,示意他現在不洗,等會兒去洗澡。

  水流划過一道優美的弧線,飄到花壇上方,變成一串串水滴,滋潤下面的花花草草。

  「這位就有你需要的抽象思維了?」樾樾問道。

  「嗯,所以我還是挺驚訝的,沒想到僅僅是拿我們淘汰的舊計算機搗鼓了半天,居然還啟發出了一個天才。」

  沒錯,他們給星軌實驗室所做的可編程符文陣買三贈一酬賓大優惠,其實用的是上一代的計算機,而現在他們已經更新換代成了執行速度更快,內存容量更大,兼容符文更多的新一代計算機。

  不過這也不算欺騙消費者,即使是上一代計算機也至少領先市場一個世代,足夠滿足他們對射電望遠鏡的模組編輯需求。

  這也算是廢物利用。

  聽了李力的話,樾樾將目光重新聚焦到了論文上,認真地看了起來。

  整篇論文對程式語言的語法介紹並沒有多少,很大篇幅集中在自己如何設計一門程式語言上,其中不僅僅有對原本語法的歸類,更集中探討了對物質世界實體與屬性的基本概念討論,簡單來說就是。。。

  「面相對象編程啊。。。沒想到一個才接觸沒多久的小姑娘,居然能提出這麼偉大而先進的概念。」李力讚嘆道。

  樾樾被這個讚美嚇了一跳,雖然很多時候她很難將自己又饞又懶又愛玩的男朋友跟那個在魔法界領域揮斥方遒的大魔導師重合在一起,但是她也能明白能被李力稱為偉大而先進,那可真的是不得了的評價。

  然而更令人驚訝的還在後面,李力想了想,然後搖了搖頭,「如果僅通過抽象定義面向對象中的實體和屬性,那麼也不過如此,但是這裡的抽象卻能夠通過魔法進行具象化,所以,這不僅僅是偉大而先進,簡直具有劃時代的意義了。」

  樾樾越聽越懵,想了半天都未解其意,只好委婉地說道:「沒聽懂,說清楚。」

  「面相對象概念是很簡單的,就是萬物皆對象的意思,每個對象都有兩種東西,屬性和方法。」

  「比如呢?」

  「比如一個人是一個對象,那麼他的屬性是什麼呢?是他的姓名,性別,年齡,國籍這種描述他本身狀態的東西,而方法則是他能夠做的事情,行走,吃飯,睡覺等等。」

  「就是名詞和動詞的區別咯?」

  「額。。。可以這麼說吧」,李力想了想,雖然感覺不對,但是又不知道哪兒不對,「舉一個更接近我們工作中的例子,我們在設計傳輸模塊的時候,如果將模塊本身看作一個對象,那麼其埠,傳輸地址,選擇信道和編碼類型就是它的屬性,而開啟傳輸,掛起傳輸,結束傳輸就是它的方法。」

  「嗯,描述清晰,繼續。」

  「在面向對象的體系中,最主要的還有一個,那就是接口,用來表示一個物體能夠做什麼事情的特殊對象。」

  「接口?」

  「沒錯,如果用語言來描述他們,接口更像是指『可被如何的』。」

  「什麼意思?」

  「走是一個行為,但是很顯然人走路的方式和動物走路的方式並不一樣,人是兩條腿,動物是零條,兩條和四條,然而只要是動物就都有走這個行為,於是我們可以一個接口叫『可以走路』的接口,裡面只有一個行為叫『走』,但是這個這個行為沒有具體細節。

  「人和其他動物都可以繼承這個接口,但是到底是用幾條腿走路就取決於具體每一個動物的實現。」

  「但是。。。這麼設計有什麼用呢?」樾樾問道。

  「如果僅僅是一種定義,那麼確實沒有多大用處」,李力笑了笑,「但是這個世界上所有的對象都是交互的,不可能單獨存在,當動物遇到危險事件的時候,人可以用雙腳走,貓狗可以用四隻腳走,魚可以用零隻腳走,因為他們都繼承了『可以走路』這個接口,從而順利地躲避危險。

  「但是很顯然,植物不能走,因為它們沒有繼承這個接口,這是動物專用接口。」

  樾樾想了想,然後指出,「那這麼說來,這個接口不能叫『可以走路』,而是『可以移動』,裡面的方法也應該是『移動』才對,畢竟魚走得不是路,遊動也並不是走路。」

  李力聽了這話,突然笑了起來,「這個就是抽象化,恭喜你,你現在已經面向對象編程了。」

  「所以,你說的劃時代的意義是指什麼呢?」樾樾又問。

  李力沉默了下來。

  他望著遠處碧藍如洗的天空,一望無垠的紅土,眼睛卻偶爾聚焦到虛無的地方,但是他知道,無論他聚焦到了哪裡,在他看不到的地方,無數游離的魔法元素正在飄蕩,作用或消失。

  許久,他才緩緩說道:「如果沒有魔法,面相對象的概念也僅僅是個概念,他能夠以萬物皆對象的方式描述世界上的一切,卻無法改變這個世界,就像植物無法繼承『可以移動』這個接口,因為沒有一個偉大的存在來編寫植物移動的實例方法。」

  樾樾挑了挑眉頭,她似乎有些明白了李力想要說的,「魔法可以強行賦予一個對象它本身不繼承的接口,來獲得它本身沒有的能力,就像通過『應激』符文賦予植物運動能力一樣。」

  「之前我也想過這個問題,難道符文確實是一種編輯世界本身的程式語言?但是我現在又開始懷疑,或許符文僅僅是一種接口,用符文催動魔法作用於物體的時候,就像是將原本沒有繼承某個接口的物體繼承這個接口,而實例則由魔法元素來進行編寫。」

  樾樾用一分鐘的時間仔細地琢磨清楚了李力的話,然後倒吸一口涼氣,滿臉不敢相信地說:「小伙子你的腦洞開得也太大了點吧。」

  「。。。這不叫腦洞,這叫魔法理論研究」,李力翻了個白眼,「所以我的意思是,不如我們把這個姑娘拐到這裡來幫我們研究理論魔法,怎麼樣?」

  「咦?推薦信不是給我們的嗎?」

  「是推薦到大學本部的」,李力擺擺手,「不過問題不大,就說這裡是北方魔導工業高等學校魔導計算機分院好了。」

  樾樾:「。。。把人家一小姑娘拐到這種鳥不拉屎的地方來,你就不怕被他爸爸打死?」

  「怕什麼,反正有你。」

  話音剛落,一聲怒吼從主樓後面響起,劃破長空而來,聲音憤怒而悽慘:

  「啊!!!!!!!老子的優育三號!!!!!!老子辛辛苦苦種出來的改良西瓜!!!!!!!老子的二毛啊!!!!!!是誰!!!!!!我要扒了你的皮!!!!!!!!!!」

  「臥槽,被發現了!」聽到這聲怒吼,李力瞪大雙眼,一把拉著樾樾的手,和她一起蹲了下來,借著花壇的掩護和巨石的縫隙小心翼翼地向後看去,看到衛青還沒有發現這兩個偷瓜賊,連忙將盛著瓜皮的盤子塞到樾樾手裡,「快快快。。。塞到你隨身空間裡。」

  「原來這個瓜是用來做實驗用的嗎?」樾樾有些古怪地看向自己的吃貨男朋友,「你早就知道?」

  「沒事沒事,反正他瓜田裡還有大毛三毛四毛五毛六毛七毛和尼古拉斯·施瓦辛格·漢尼拔,少這麼一個也沒事。」

  「等等,最後一個名字是怎麼回事?」

  「我給起的,不過現在最主要的還是別讓他發現。。。」

  「不是有我麼,你還怕他扒了你的皮?」

  「少廢話,因為我理虧!甭管了,趁他沒發現趕緊撤,走走走走。。。」一邊說著,一邊拉著樾樾的手撤離了案發現場,向遠處流竄而去。