為什么有對象是動態的?
作為一名IT從業者,同時也是一名計算機專業的教育工作者,我來回答一下這個問題。
首先,面向對象程序設計本身的抽象程度還是比較高的,正因為有較高的抽象程度,所以理解面向對象編程要更復雜一些,面向對象編程涉及到很多概念,其中動態和靜態就是兩個比較大的內容。
要想理解動態和靜態這兩個概念,首先要從面向對象編程的過程出發,以Java語言為例,編程的過程可以總結為三個步驟,分別是類的定義、對象的創新和方法的調用。類的定義是編程的第一步,重點在于功能和屬性的定義,由于類本身就是一個抽象的概念定義,所以類在程序運行的過程中并不會產生變化,這也是為什么把類稱為“靜態概念”的重要原因。
定義類的目的往往是基于類來完成對象的創建,相對于類來說,對象是執行功能的主體,而且同一個類可以構建出大量不同狀態的對象,而且這些對象之間也可能會存在一定的關系(繼承、多態等),所以對象往往是動態的。實際上,對于對象的理解是掌握面向對象編程的重點,對象的整個生命周期管理也能夠體現出程序員的編程能力,比如通過各種容器(Container)來管理對象等等。
站在設計的角度來說,類(包括接口)是設計的起點,而對象則是執行具體功能的實體,所以類可以比喻成“圖紙”,而對象則是由圖紙構建出來的實物,這就是類和對象之間的基本關系。從這個角度來看,對象雖然是動態的,但是對象的功能則是由類來賦予的,因此學習面向對象編程的一個重點就是如何設計類。
我從事互聯網行業多年,目前也在帶計算機專業的研究生,主要的研究方向集中在大數據和人工智能領域,我會陸續寫一些關于互聯網技術方面的文章,感興趣的朋友可以關注我,相信一定會有所收獲。
如果有互聯網、大數據、人工智能等方面的問題,或者是考研方面的問題,都可以在評論區留言,或者私信我!