[英]public static vs static public - is there a difference?
sealed class PI
{
public static float number;
static PI()
{ number = 3.141592653F; }
static public float val()
{ return number; }
}
public static和static public有什么區別? 可以按任何順序使用它們嗎?
我將如何使用static public float val()
?
類初始化后是否立即執行?
沒有區別 您可以隨意以任何順序指定它們。 但是,我發現大多數開發人員傾向於使用靜態公共而非靜態公共。
好吧,這就像一個人的名字=)叫Tom Mike或Mike Tom,沒什么區別。
關於修飾符的順序
它們可以以任何順序使用。 這只是您使用的一種風格選擇。 我總是首先使用可見性,大多數其他代碼也使用可見性。
關於第二個問題:
static public float val()
這只是一個靜態函數。 您可以使用PI.val()
調用它。 您只是不需要類的實例來調用它,而是直接在類上調用它。 靜態函數不會收到this
引用,也不能是虛擬的,就像非OOP語言中的函數一樣,只是它使用類作為名稱空間。
沒有區別。 彼此之間的順序並不重要
要回答您的第二個問題,可能應該寫成
public static class Pi
{
private static float pi = 0;
public static float GetValue()
{
if (pi == 0)
pi = 3.141592653F; // Expensive pi calculation goes here.
return pi;
}
}
並這樣稱呼它:
float myPi = Pi.GetValue();
編寫此類的原因是為了緩存該值,從而節省了后續調用該方法的時間。 如果獲取pi的方法需要大量時間來執行計算,則只需要執行一次計算即可。
關於第二個問題:該方法在沒有類實例的情況下可用,因此可以這樣調用:
PI.val();
因為該類僅具有靜態成員,所以該類可能應該是靜態類,因此永遠無法初始化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.