靜態成員與非靜態成員區別

2021-04-18 13:02:33 字數 779 閱讀 3231

若將類中的某個成員宣告為static   該成員稱為靜態成員類中的成員要麼是靜態 要麼是非靜態的一般說來靜態成員是屬於類所有的非靜態成員則屬於類的例項 物件 以下示例**演示了如何宣告靜態和非靜態成員

程式清單10-5

using   system;

class   test

int   x;

static   int   y;

void   f()  

x   =   1;   //   正確,等價於this.x   =   1

y   =   1;   //   正確,等價於test.y   =   1

static   void   g()  

x   =   1;   //   錯誤不能訪問   this.x

y   =   1;   //   正確,等價於test.y   =   1

static   void   main()  

test   t   =   new   test();

t.x   =   1;   //   正確

t.y   =   1;   //   錯誤不能在類的例項中訪問靜態成員

test.x   =   1;   //   錯誤不能按類訪問非靜態成員

test.y   =   1;   //   正確 } }

類的非靜態成員屬於類的例項所有每建立乙個類的例項都在記憶體中為非靜態 成員開闢了一塊區域而類的靜態成員屬於類所有為這個類的所有例項所共享無 論這個類建立了多少個副本乙個靜態成員在記憶體中只占有一塊區域。

靜態成員與非靜態成員

靜態成員屬於類,而非靜態成員屬於類的例項。兩者的主要區別是static關鍵字,靜態成員使用static關鍵字宣告,放在型別之前,而非靜態成員則沒有。每次類被例項化之後,類中的非靜態成員就會隨著例項複製乙份過去,而靜態成員則仍然保留在類中。靜態成員和非靜態成員是不能互相呼叫。也就是說,靜態方法只能呼叫...

靜態成員及非靜態成員 區別

靜態成員及非靜態成員解說 對於非靜態資料成員,每個類物件都有自己的拷貝。而靜態資料成員被當作是類的成員。無論這個類的物件被定義了多少個,靜態資料成員在程式中也只有乙份拷貝,由該型別的所有物件共享訪問。也就是說,靜態資料成員是該類的所有物件所共有的。對該類的多個物件來說,靜態資料成員只分配一次記憶體,...

靜態成員和非靜態成員的區別

靜態成員和非靜態成員的區別?答 靜態變數使用 static 修飾符進行宣告,在類被例項化時建立,通過類進行訪問不帶有 static 修飾符宣告的變數稱做非靜態變數,在物件被例項化時建立,通過物件進行訪問乙個類的所有例項的同一靜態變數都是同乙個值,同乙個類的不同例項的同一非靜態變數可以是不同的值。靜態...