靜態成員變數修改問題

2021-08-10 07:44:40 字數 696 閱讀 7010

先看一段**:

//student類	

public class student

public student(string name,int age,string country)

//成員方法

public void show()

}//測試類

public class test2

}

輸出結果:

小哀,20,中國

小蘭,19,japan

新一,19,japan

小朱,23,chinese

小麗,21,chinese

雖然static 可以使contry讓所有物件共享,但如果單獨給乙個物件的country賦值,下面新建立的物件的country不賦值的話,他們的country值和這一物件的country值相同.

如果想讓所有物件共享這一成員變數,並不能改變,可以再給這一成員變數加上final,測試類中也不能再給country賦值:

//student類	

public class student

public student(string name,int age)

//成員方法

public void show()

}

靜態成員函式 靜態成員變數

靜態的成員函式,同靜態資料成員類似,它也是屬於類,而不是屬於某乙個物件的。靜態成員函式不能訪問非靜態的資料成員,它只能訪問靜態資料成員,也只能呼叫其它的靜態成員函式。原因是 當前物件的位址 this 是被隱含地傳遞到被呼叫的函式的。但乙個靜態成員函式沒有 this 指標,所以它無法訪問非靜態的成員函...

靜態成員變數

在上一課中的靜態成員變數,你了解到的類可以有成員變數是在類的所有物件共享。然而,如果我們的 靜態成員變數是 私人的?考慮下面的例子 1 2 3 4 5 6 7 8 9 10 11 12 13 classsomething intsomething s nvalue 1 initializer int...

靜態成員變數

程式設計實習 郭煒 微博 劉家瑛 微博 資訊科學技術學院 1 靜態成員變數和靜態成員函式 ifndef test define test include include include define n 11000 using namespace std endif include test.h c...