如果我有一個靜態方法唯一的好處是我們有單一副本。需要沒有對象來調用方法。創建一個對象也是一樣,也就是說我們可以用對象調用方法。我們爲什麼要有靜態方法。有人可以提供一個例子來解釋嗎?靜態方法使用
Q
靜態方法使用
0
A
回答
0
因爲您想抽象實例化過程,所以當您擁有私有構造函數時,靜態方法會很有用。
例如,在C++:
class Foo {
Foo() {}
public:
static Foo *create() {
return new Foo;
}
};
在該示例中抽象就叫否則在訪問構造函數,但實際上,你可能希望有對象池這是共享的,所以create()
方法將爲你管理這件事。
有時,當你有需要,在施工時被initalised它可以清潔移動邏輯此爲private
靜態方法const的成員,如:
struct Foo;
struct Bar {
Bar() : f(make()) {
}
private:
const Foo f;
static Foo make() {
// Create it here
}
};
0
靜態方法當開發人員真的確定該方法在類中只有一個實例時使用。沒有其他實例可以改變它。 如:
public class People
{
private
public static Int32 GetValue(Int x)
{
return x + 3;
}
}
所以,即使你是做對象人的情況下,從靜態的GetValue方法的返回只生產X + 3 當你真的一定要做出一個功能方法像數學它通常用於或物理方法。 你可以參考使用靜態角度的函數式編程。
一些舊學校的人過度使用靜態方法,而不是做OOP方法。
如:
public class People
{
public static DataSet GetPeopleById(String personId)
{ .... implementation that using SQL query or stored procedure and return dataset ... }
public static DataSet GetXXXXXXX(String name, DateTime datex)
{ .... implementation ... }
}
上面的實現可以是成千上萬行
的這種風格恰好到處使它像面向對象的風格(因爲它在類發生),但想着像處理方式。 這是一個幫助,因爲並非所有人都瞭解OOP風格,而不是像OOP風格。
使用靜態的另一個優點是節省內存佔用和更快。 你可以在博客中看到:http://www.dotnetperls.com/callvirt
相關問題
- 1. 使用方法調用靜態方法?
- 2. 在Dao類中使用靜態方法或非靜態方法?
- 3. 靜態方法或使用靜態字段的非靜態方法
- 4. 如何使用靜態方法調用非靜態方法(使用WebControl)?
- 5. 靜態靜態方法?
- 6. Java錯誤:靜態方法無法引用非靜態方法
- 7. 無法使用Environment.GetResourceString靜態方法
- 8. 靜態方法
- 9. 靜態方法
- 10. 靜態方法
- 11. 靜態方法
- 12. 靜態方法
- 13. Java,使方法靜態
- 14. 使用通用類的靜態方法
- 15. 使用類型調用靜態方法
- 16. 使用反射調用靜態方法
- 17. 使用Azure WebJobs調用靜態方法
- 18. 從Python中的靜態方法調用非靜態方法
- 19. 如何從靜態方法調用非靜態方法?
- 20. (Java)靜態通用方法與泛型類靜態方法
- 21. 從另一個靜態方法中調用靜態方法
- 22. 對靜態方法的靜態引用(在主要方法中)
- 23. 從靜態基類方法調用靜態派生類方法
- 24. 如何在靜態主要使用非靜態方法(觀察者方法)
- 25. 模擬靜態使用時的靜態方法從其他方法
- 26. 如何正確使用Mockito靜態方法包裝在非靜態方法中?
- 27. 靜態方法中使用的靜態unorderd_map未初始化
- 28. PHP靜態調用方法;即使其未定義爲靜態
- 29. 靜態方法調用
- 30. 通用靜態方法