我不認爲我是理解爲什麼設置私人以外的「你應該這樣做」。如果我有一個自動售貨機類,它有一個變量,說明它在機器中有多少硬幣對一切都沒用,我爲什麼要把它設置爲私有?這不像是我會變得很高,在另一個類別寫vendingMachine.coins = 99999.爲什麼要設置私密?我不會瘋狂和隨機變量混亂
1
A
回答
0
這可能是真實的,但OOP的重點是分離職責,並保持與相應的方法數據在一起。對於非常小的和一個人的項目,這可能不是必需的,但是在重複使用來自其他人的對象的大型項目中,您有時不知道應該修改哪些字段以及哪些字段不應該混淆。這就是爲什麼在OOP中只定義了公共接口和所有內部私有接口。這也使您可以在不破壞程序的情況下更改內部實現。
2
使用private
有幾個好點 - 我用它在很大程度上,除非我真的需要屬性或方法將被寫入&從多個地方讀取。
- Tidyness - 這是非常簡單的,看看有什麼屬性僅被當前類內變化,並且方法僅被從當前類中調用。
- 只讀 - 屬性可以使用帶有公共getter的私有屬性進行只讀。
- 您可以特別使用屬於獲取者和設置者的屬性。
真的,使用private
給我一個很好的概述我的應用程序。我可以很容易地計算出哪些變量可以與課外混合,哪些變量只能在課堂上變化。
就我個人而言,當我嘗試想象我的應用程序時,我將每個類視爲一個圓。每個圓都有一個分支,表示連接到所有其他有權訪問的圓的屬性或方法。現在當你考慮這個視覺時,如果一切都是public
,那將會是一個巨大的糾結。
我這樣接近我的面向對象;而不是隻做一個財產或方法private
當它真的需要是private
,我只做一個屬性或方法public
如果它真的需要在整個應用程序中訪問。我提供最嚴格的一切訪問。即internal
爲同一包中的內容,protected
僅用於擴展類中的事物,private
用於僅在其定義的類中觸及的內容。我還大量使用private
屬性,並定義了getter
,以便我可以立即知道屬性只會在包含它的類中更改,但是可以在其他區域中訪問。
相關問題
- 1. MySQL隨機更新瘋狂
- 2. C++:爲什麼爲「int」變量輸入「char」會導致遞歸變得瘋狂?
- 3. 爲什麼我不斷收到「java.lang.AbstractMethodError:oracle.jdbc.driver.OracleConnection」錯誤?這讓我瘋狂。 。
- 4. 爲什麼我的私有變量設置爲空?
- 5. 爲什麼會話變量未設置
- 6. Cookies和ASP.NET讓我瘋狂
- 7. 爲什麼我不能設置會話變量?
- 8. GridBagLayout變得瘋狂
- 9. Python瘋狂易變
- 10. 爲什麼手機使用jQuery('body')檢測瘋狂的寬度。
- 11. 爲什麼我不能將普通變量設置爲私有或公共?
- 12. 瘋了,爲什麼我的變數會改變我?
- 13. 當touchesBegan從UIImageView開始時,爲什麼UIImageView會全部瘋狂?
- 14. 隨着Dalli,你爲密鑰和祕密設置了什麼?
- 15. 爲什麼我的變量不是用SESSION變量設置的?
- 16. DateTime2讓我瘋狂
- 17. InnerHtml讓我瘋狂
- 18. Pygame.Surface讓我瘋狂
- 19. DatabaseFileLockedException讓我瘋狂
- 20. 變量瘋狂,舍入數(int,double等)
- 21. Windows 8 Javascript瘋狂 - 變量undefined
- 22. 爲什麼file_put_contents()給我的文件瘋狂的名字?
- 23. SendKeys ::發送,將要瘋狂
- 24. C#爲什麼不設置該變量?
- 25. 爲什麼我們需要設置變量private/public?
- 26. 爲什麼我需要設置變量值
- 27. 爲什麼數字不會隨機?
- 28. 爲什麼不會隨機化(MATLAB)?
- 29. 這裏有什麼不對勁它讓我瘋狂
- 30. 找不到什麼是創建這個邊界,讓我瘋狂?
也許你不是,但你的同事誰不瞭解VendingMachine的概念可能。你保護他不受私人保護,而不是你自己。 – RIAstar