我認爲我們必須在成員變量上使用正確的修飾符來實現模塊化,但對類成員的訪問修飾符對應用程序性能的影響感到好奇。是私人和公共訪問修飾符在性能上有所不同嗎?
如果我的程序很小,那麼如果我使用所有成員變量public呢?
我認爲我們必須在成員變量上使用正確的修飾符來實現模塊化,但對類成員的訪問修飾符對應用程序性能的影響感到好奇。是私人和公共訪問修飾符在性能上有所不同嗎?
如果我的程序很小,那麼如果我使用所有成員變量public呢?
在C++和Java中,修飾符本身並不直接影響性能:在編譯階段執行關注點分離時存在,但編譯(對象)代碼中沒有修飾符的痕跡。然而,使用訪問器和增變函數來引用成員變量理論上會施加一些較小的性能損失。即便如此,在C++中,這些調用可以被編譯器內聯,完全消除了懲罰。 @Peter Lawrey在評論中提到類似的優化可用於Java。
因此,使用任何導致更清潔的設計,因爲任何性能影響是有爭議的。
謝謝,這是完美的解釋。 –
Java即使在程序啓動後編譯,也可以內聯「虛擬」訪問器方法。 –
乾杯,更新了答案 –
在C++中,訪問修飾符對應用程序的性能沒有影響,這完全取決於訪問/可見性。它們只是編譯時的概念,沒有運行時組件或檢查。
感謝您的回答,其他語言呢?我正在使用java。 –
@totaloverdose那麼你爲什麼用C++標記? Java和C++可能看起來很相似,但卻是完全不同語言的兩種完全不同的語言。 –
好的,我認爲這屬於基本的面向對象的概念。我會更新這個問題。感謝您的澄清。 –
它在Java中嚴重影響! 有效性是朋友和同事之間的共同話題,但最終我們都試圖通過錯誤的方式最大限度地提高效率...... 有效編碼的大多數問題都是許多代碼行(您不希望看到多少代碼.. )和邏輯錯誤進入不必要的循環(不是最終的循環,但是不必要的非我們可以這麼說...例如可以由其他事件調用的頻繁跳棋)
大家一直都在你身邊! 但是你不會在那裏找到多少; p
答案可能因語言而異,請選擇一個。 –