JAVA基本概念 2

1、成員變量分爲實例變量靜態變量(類變量)

實例變量:沒有用static修飾的成員變量。

靜態變量:用static修飾的成員變量,又稱爲類變量。

區別:

      (1)當Java程序執行時,類的字節碼文件被加載到內存,如果該類沒有創建對象,實例變量不會被分配內存;但類變量會被分配相應內存。

      (2)實例變量必須通過對象訪問;類變量可以通過對象訪問,也可以通過類名訪問。

不同對象的實例變量互不相同,即分配不同的內存空間,改變其中一個對象的實例變量不會影響其他對象的實例變量;類變量在該類加載到內存時就被分配內存,不再重新分配內存,所有對象共享類變量,類變量的內存空間直到程序退出運行才被釋放。

 

 

2、方法分爲兩個部分:方法的聲明和方法體。

     (1) 除構造方法之外,方法都必須都有類型,即使類型爲void也不能省略。

      (2)方法內定義的局部變量從它定義的位置之後開始有效。

      (3)方法:構造方法、實例方法、類方法。

      (4)實例方法可以操作成員變量,無論是實例變量還是類變量;實例方法必須通過對象來調用。

      (5)類方法只能操作類變量,不能操作實例變量;類方法還可以通過類名調用。

      (6)爲什麼實例方法必須通過對象來調用?——當類的字節碼文件被加載到內存時,類的實例方法不會被分配入口地址,只有當類創建對象後,類的實例方法才分配入口地址。但是,創建一個對象時,實例方法分配了入口地址,再創建對象時,不再分配入口地址,即方法的入口地址被所有對象共享。

      (7)當使用new和構造方法創建對象時,首先分配成員變量給該對象,同時實例方法分配入口地址,再執行構造方法中的語句,完成必要的初始化。

      (8)爲什麼類方法不能操作實例變量和實例方法?——在類創建對象之前,實例成員變量還沒有分配內存,實例方法也還沒有分配內存。

 

3、方法中的參數傳值

      (1)對於基本數據類型的參數,傳遞的值的級別不能高於該參數的級別。

      (2)對於引用類型參數的傳值,傳的是變量的引用,而不是變量所引用的實體。引用的改變不會影響實體,但是實體的改變,會改變原變量實體的改變。  

 

4、方法重載:是多態性的一種。在同一個類中,具有相同的名字,但參數必須不同,方法的返回類型和參數的名字參與比較。  

     方法的重寫:這個出現在之類繼承父類的方法,方法的返回類型、名字、參數全部相同,對方法體重寫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章