2012-05-18 55 views
0

我有一個疑問,在這麼多的解釋之後,我仍然沒有真正明白這一點。爲什麼我們需要聲明一個私有靜態方法?由於該方法是私有的,因此只能由類本身訪問,並且可以輕鬆地調用內部函數而無需創建實例,不是嗎?或者我錯了這個概念? 我的意思是我可以理解爲什麼我們有一個私有方法(因爲我們希望只保留類本身的邏輯),我也明白爲什麼我們需要一個靜態方法(因爲我們不需要一個實例來訪問該方法) 。所以,我的問題是爲什麼我們需要在私人時將其設爲靜態?就好像我們不希望任何其他類訪問它,並且它不能直接從代碼中調用(因爲它是私有的),但我們仍然保持靜態?使用私有靜態方法OOP概念

對不起,但是我很困惑。任何人都可以幫助我解決這個問題嗎

最好的問候, 易英

回答

2

您可能需要從靜態公共打電話給你的靜態專用。靜態公共不能訪問非靜態私有!

0

另一個原因可能是性能,這取決於平臺。對於.NET平臺,在documentation of FxCop,微軟的靜態代碼分析工具,你可以找到下面的語句:

方法不訪問實例數據或調用實例方法可以被標記爲靜態的(在共享Visual Basic)。將這些方法標記爲靜態後,編譯器將向這些成員發出非虛擬呼叫站點。發送非虛擬呼叫站點將阻止每次調用的運行時檢查,以確保當前對象指針非空。這可以爲性能敏感的代碼帶來可衡量的性能增益。在某些情況下,訪問當前對象實例失敗表示正確性問題。