C 靜態變數與例項變數

2021-06-13 05:59:56 字數 875 閱讀 3362

c#靜態變數與例項變數

1)在語法定義上的區別:

類變數也叫靜態變數,靜態變數前要加static關鍵字,而例項變數前則不加;

例項變數也叫物件變數,即沒加static 的變數;

2)在程式執行時的區別:例項變數屬於某個物件的屬性,必須建立了例項物件,其中的例項變數才會被分配空間,才能使用這個例項變數。靜態變數不屬於某個例項物件,而是屬於類,所以也稱為類變數,只要程式載入了類的位元組碼,不用建立任何例項物件,靜態變數就會被分配空間,靜態變數就可以被使用了。總之,例項變數必須建立物件後才可以通過這個物件來使用。靜態變數則可以直接使用類名來引用;

3)在執行表現結果的區別:類變數和例項變數的區別在於:類變數是所有物件共有,其中乙個物件將它值改變,其他物件得到的就是改變後的結果;而例項變數則屬物件私有,某乙個物件將其值改變,不影響其他物件;

例如下面一段程式:

using system;

using system.collections.generic;

using system.linq;

using system.text;

,a.a2=", statictest.stal, a.a2);//輸出靜態變數和例項a的成員a2的值

console.writeline("statictest.stal+,b.a2=", statictest.stal, b.a2);//輸出靜態變數和例項b的成員a2的值

console.readkey();}}

class statictest

}

執行結果:

Javascript靜態變數與例項變數

嚴格的來講,js裡面並沒有靜態與私有的概念,所有成員屬性都是公開的,下面只是參考oo語言,通過某種方式來實現類似的概念。一。靜態變數 1.私有靜態變數 所有例項共享。因為是私有的變數,所以不能通過函式名直接訪問。通過閉包來實現。根據閉包的作用域原理,只能在閉包內部訪問。所以,並不是類的任何地方都可以...

javascript 靜態變數與例項變數

剛看網易公開課stanford程式設計方法學的第九課 提到static靜態變數和instance variable例項變數,我想js肯定也有 研究了一下,如下 靜態變數static是class的所有object都共享的,那麼在靜態變數static只能定義在建構函式外面,但是又要只能被同乙個class...

靜態變數和例項變數

在語法定義上的區別 靜態變數前要加static關鍵字,而例項變數前則不加。在程式執行時的區別 例項變數屬於某個物件的屬性,必須建立了例項物件,其中的例項變數才會被分配空間,才能使用這個例項變數。靜態變數不屬於某個例項物件,而是屬於類,所以也稱為類變數,只要程式載入了類的位元組碼,不用建立任何例項物件...