為什么有對象是動態(tài)的?
作為一名IT從業(yè)者,同時也是一名計算機專業(yè)的教育工作者,我來回答一下這個問題。
首先,面向?qū)ο蟪绦蛟O(shè)計本身的抽象程度還是比較高的,正因為有較高的抽象程度,所以理解面向?qū)ο缶幊桃鼜?fù)雜一些,面向?qū)ο缶幊躺婕暗胶芏喔拍睿渲袆討B(tài)和靜態(tài)就是兩個比較大的內(nèi)容。
要想理解動態(tài)和靜態(tài)這兩個概念,首先要從面向?qū)ο缶幊痰倪^程出發(fā),以Java語言為例,編程的過程可以總結(jié)為三個步驟,分別是類的定義、對象的創(chuàng)新和方法的調(diào)用。類的定義是編程的第一步,重點在于功能和屬性的定義,由于類本身就是一個抽象的概念定義,所以類在程序運行的過程中并不會產(chǎn)生變化,這也是為什么把類稱為“靜態(tài)概念”的重要原因。
定義類的目的往往是基于類來完成對象的創(chuàng)建,相對于類來說,對象是執(zhí)行功能的主體,而且同一個類可以構(gòu)建出大量不同狀態(tài)的對象,而且這些對象之間也可能會存在一定的關(guān)系(繼承、多態(tài)等),所以對象往往是動態(tài)的。實際上,對于對象的理解是掌握面向?qū)ο缶幊痰闹攸c,對象的整個生命周期管理也能夠體現(xiàn)出程序員的編程能力,比如通過各種容器(Container)來管理對象等等。
站在設(shè)計的角度來說,類(包括接口)是設(shè)計的起點,而對象則是執(zhí)行具體功能的實體,所以類可以比喻成“圖紙”,而對象則是由圖紙構(gòu)建出來的實物,這就是類和對象之間的基本關(guān)系。從這個角度來看,對象雖然是動態(tài)的,但是對象的功能則是由類來賦予的,因此學(xué)習(xí)面向?qū)ο缶幊痰囊粋€重點就是如何設(shè)計類。
我從事互聯(lián)網(wǎng)行業(yè)多年,目前也在帶計算機專業(yè)的研究生,主要的研究方向集中在大數(shù)據(jù)和人工智能領(lǐng)域,我會陸續(xù)寫一些關(guān)于互聯(lián)網(wǎng)技術(shù)方面的文章,感興趣的朋友可以關(guān)注我,相信一定會有所收獲。
如果有互聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等方面的問題,或者是考研方面的問題,都可以在評論區(qū)留言,或者私信我!