靜態和非靜態

2021-10-04 11:55:18 字數 481 閱讀 3025

靜態包括靜態類、靜態方法和靜態變數。靜態都是全域性擁有的,比如,靜態變數是這個類的所有例項共有 ,乙個例項的修改影響其他例項。

靜態類中只能包含靜態變數和靜態方法。非靜態類既可以包含靜態變數和方法,又可以包含非靜態變數和方法。

靜態類不能夠被例項化,直接使用類名呼叫變數或方法。非靜態變數同樣可以使用類名呼叫靜態變數和方法,但是必須例項化之後才能呼叫非靜態變數和方法。

靜態方法中只能使用靜態變數。非靜態方法既可以使用非靜態變數也可以使用靜態變數。

靜態方法如果要呼叫非靜態方法,必須要先例項化被呼叫方法的類,使用例項呼叫。非靜態方法可以呼叫非靜態方法和靜態方法。

class test

public static void main(string args)

}

靜態變數在類載入的過程中分配記憶體空間,儲存在方法區中。非靜態變數在類例項化時分配空間,在堆中。

靜態變數可以使用類名直接呼叫。

靜態和非靜態

在自定義類和.net framework類庫中都可以發現,類中大部分是乙個類,很少是靜態類,那到底靜態類是否真的需要?其實程式上的設計都是必須的,所有的設計都是 於生活,於客戶分析。在程式設計初期,需要業務邏輯,明確編寫流程,以防後期各種修改。比如設計個學校的管理軟體,記錄每個學生的資訊,包括班級 ...

靜態和非靜態方法 呼叫靜態和非靜態方法 原創

在學習php物件導向的時候,遇到了一些問題 class test1 在test1類中,定義了乙個test方法。一般呢,想要呼叫test方法的話,是通過例項化乙個物件來呼叫test方法的。比如 aaa.php php 正常的方式訪問普通方法test class test1 new new test1 ...

靜態和非靜態方法 呼叫靜態和非靜態方法 原創

在學習php物件導向的時候,遇到了一些問題 class test1 在test1類中,定義了乙個test方法。一般呢,想要呼叫test方法的話,是通過例項化乙個物件來呼叫test方法的。比如 aaa.php php 正常的方式訪問普通方法test class test1 new new test1 ...