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

2021-06-05 05:30:00 字數 1254 閱讀 6497

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

答:靜態變數使用 static 修飾符進行宣告,在類被例項化時建立,通過類進行訪問不帶有 static 修飾符宣告的變數稱做非靜態變數,在物件被例項化時建立,通過物件進行訪問乙個類的所有例項的同一靜態變數都是同乙個值,同乙個類的不同例項的同一非靜態變數可以是不同的值。靜態函式的實現裡不能使用非靜態成員,如非靜態變數、非靜態函式等。

using system;

using system.collections.generic;

using system.text; 

namespace example01

class program    

class class1        

public static string staticstr = "class";            

public string notstaticstr = "obj";        

static void main(string args)        

//靜態變數通過類進行訪問,該類所有例項的同一靜態變數都是同乙個值            

console.writeline("class1's staticstr: ", class1.staticstr);             

class1 tmpobj1 = new class1();            

tmpobj1.notstaticstr = "tmpobj1";            

class1 tmpobj2 = new class1();            

tmpobj2.notstaticstr = "tmpobj2";             

//非靜態變數通過物件進行訪問,不同物件的同一非靜態變數可以有不同的值            

console.writeline("tmpobj1's notstaticstr: ", tmpobj1.notstaticstr);            

console.writeline("tmpobj2's notstaticstr: ", tmpobj2.notstaticstr);             

console.readline();        

結果: 

class1's staticstr: class 

tmpobj1's notstaticstr: tmpobj1 

tmpobj2's notstaticstr: tmpobj2

靜態成員和非靜態成員

類中的成員要麼是靜態的要麼是非靜態的。一般來說,靜態成員都歸屬於類所有,使用 static 關鍵字來宣告,不能在類的例項中訪問靜態成員 非靜態成員屬於類的例項 物件所有,不能按照類訪問靜態成員來訪問。下面用乙個例項來幫助理解 using system using system.collections...

靜態成員和非靜態成員

靜態成員和非靜態成員 1.含義 在c de 成員變數被宣告為static 稱為靜態成員變數 在類被例項化時建立,通過類進行訪問,意味著它為該類的所有例項所共享,當某個類的例項修改了該靜態成員變數,其修改值為該類的其它所有例項所見,也就是說乙個類的所有例項的同一靜態變數都是同乙個值。不帶有 stati...

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

若將類中的某個成員宣告為static 該成員稱為靜態成員類中的成員要麼是靜態 要麼是非靜態的一般說來靜態成員是屬於類所有的非靜態成員則屬於類的例項 物件 以下示例 演示了如何宣告靜態和非靜態成員 程式清單10 5 using system class test int x static int y ...