公共靜態方法和公共方法有什麼區別?爲什麼要使用公共靜態方法?公共靜態方法vs公共方法
7
A
回答
11
Math類的方法是靜態的。所以,在做
Math.round(average)
數學類本身不會改變你所做的 - 它只會返回一個值或作用於你傳遞的值。
所以 - 靜態方法對實用程序很有用。比如像
StringUtils.removeWhitespaceFrom(textContent:String):String
或
BrowserUtils.openInNewWindow(url:String):void
這是非常不尋常的,你會使用一個靜態方法爲別的。不要像'getInstance()'那樣使用靜態來創建Singletons - 而應該考慮依賴注入框架。
3
靜態方法是方法,一個不特定的類(對象)的任何實例,他們是不允許包含此引用的方法,你可以通過類直接訪問它們(而不是對象實例)
2
爲了使你的概念清楚,假設你想知道你的類被實例化了多少次,你將在你的類構造器中使用靜態變量計數器,每次創建對象時。
然後,你必須使用靜態方法來訪問這些數據,否則你可以聲明你的變量public或default,並用類名訪問它,但是違反了OOP原則。這裏是小例子
公共類CAR {
私人靜止無功櫃檯:= 0;
private function CAR(){Counter ++; }
public static function ReturnTotalCarInstances():int { return Counter;爲什麼它在大多數編程語言提供 }
}
靜態變量有自己的利益,多數民衆贊成。計數實例是靜態變量的一小部分。它們在更大的範圍內使用。主要的一點是它被用來在Class的所有對象之間共享全局數據。
4
靜態方法可以用作重載構造函數。 ActionScript沒有函數重載,所以有時候我寫了類似於:
public class Foo {
public static function fromBar(bar:Bar):Foo {
var foo:Foo = new Foo();
... //initializing foo object from bar
return foo;
}
public static function fromBaz(baz:Baz):Foo {
var foo:Foo = new Foo();
... //initializing foo object from baz
return foo;
}
}
相關問題
- 1. C#靜態公共方法
- 2. Java公共靜態布爾方法
- 3. 不能使用公共靜態方法?
- 4. 靜態公共方法和接口
- 5. 什麼是更好的:公共靜態類與靜態方法或公共類與靜態方法?
- 6. 「公共靜態」還是「靜態公共」?
- 7. 封裝:公共成員vs公共方法
- 8. JQuery - Widget公共方法
- 9. 調用公共方法
- 10. 接口和公共方法
- 11. 模擬的公共方法
- 12. 公共靜態HashTable
- 13. 與方法公共方法與私有
- 14. 推薦:「靜態公共」或「公共靜態」
- 15. 公共靜態與靜態公共 - 是否有區別?
- 16. JavaScript中訪問其他公共方法內(同一目標)的公共方法
- 17. 覆蓋不能覆蓋公共靜態void main方法
- 18. 錯誤上訪問一個公共的靜態方法
- 19. 什麼時候應該使用公共靜態方法
- 20. ASP.NET如何從公共靜態方法調用clientscript
- 21. 學習Java公共靜態主要方法
- 22. 只有公共靜態方法與實例化類的類
- 23. 使用JMockit抽象類中的非公共靜態方法?
- 24. 創建新的實例或使用公共靜態方法?
- 25. 如何調用公共靜態類的方法來使用?
- 26. 公共靜態方法 - 一個壞跡象?
- 27. 公共靜態變量或使用意圖類的putExtra方法
- 28. 如何在Clojure中調用公共類的非公共方法?
- 29. Java中使用的方法公衆詮釋,而不是公共靜態INT
- 30. 靜態與公共財產