java中static關鍵字的作用

Myyboke發表於2020-10-09

static關鍵字的作用

static可以修飾變數、方法、程式碼塊和內部類

static屬性屬於這個類所有,即由該類建立的所有物件共享同一個static屬性。可以物件建立後通過物件名.屬性名和類名.屬性名兩種方式來訪問。也可以在沒有建立任何物件之前通過類名.屬性名的方式來訪問。

static變數和非static變數的區別(都是成員變數,不是區域性變數)

1.在記憶體中份數不同

不管有多少個物件,static變數只有1份。對於每個物件,例項變數都會有單獨的一份

static變數是屬於整個類的,也稱為類變數。而非靜態變數是屬於物件的,也稱為例項變數

2.在記憶體中存放的位置不同
3.訪問的方式不同

例項變數: 物件名.變數名 stu1.name=“小明明”;

靜態變數:物件名.變數名 stu1.schoolName=“西二旗小學”; 不推薦如此使用

類名.變數名 Student.schoolName=“東三旗小學”; 推薦使用

4.在記憶體中分配空間的時間不同

Student.schoolName=“東三旗小學”;或者Student stu1 = new Student(“小明”,“男”,20,98);

static方法也可以通過物件名.方法名和類名.方法名兩種方式來訪問

static程式碼塊。當類被第一次使用時(可能是呼叫static屬性和方法,或者建立其物件)執行靜態程式碼塊,且只被執行一次,主要作用是實現static屬性的初始化。

static內部類:屬於整個外部類,而不是屬於外部類的每個物件。不能訪問外部類的非靜態成員(變數或者方法),.可以訪問外部類的靜態成員

相關文章