在Java代碼約定中,實例變量應放在方法之前還是放在方法之後?我知道,在Oracle或Apache的代碼約定中,他們建議實例變量應該放在方法之前。但是,在Core Java一書中,作者將實例變量放在方法之後。嗯......也許是因爲我的C++背景,在我學習C++期間,我受過教育,公共職能應該放在私人成員之前,因爲人們更關心你的代碼提供的功能。所以,我想知道哪個是首選方式?如果你可以用你的實際項目經驗來解釋你的理由,那就更好了。在Java代碼約定中,實例變量應放置在方法之前還是放在方法之後?
回答
正常的Java約定是先放置靜態變量,然後是實例變量,後面是構造函數,然後是方法最後。
但是,在Core Java一書中,作者將實例變量放在方法之後。
你總是可以找到不符合常規約定的人/書。
因此,我想知道哪個是首選方式?
參見上文。
如果您可以使用您的實際項目經驗來解釋您的理由,那會更好。
沒有理由,除了因爲這是接受這樣做,寫代碼,違背了正常的慣例趨於的正常方式使其不太可讀......對於誰遵循人正常的約定。
有人可能會對代碼可讀性進行一些經驗性研究,在這些研究中他們測量了相對可讀性。但我從來沒有打擾過把它們搜出來。
+1即使我沒有遵循約定,我在使用它之前總是使用字段。 (換句話說,我錯過了方法本地字段;) –
我強烈懷疑任何有關代碼可讀性的研究存在 - 因爲後來的代碼是由一個IDE分解爲您介紹的。 – tucuxi
我認爲'除了這是接受的常規方式之外,編寫違反正常慣例的代碼往往會降低可讀性......'是關鍵之處。 – BlueRomantic
使用您正在處理的項目的樣式。大多數編碼慣例都存在,所以人們可以不斷思考小代碼格式問題(並且源代碼控制以非建設性的方式跨越其他人的源代碼)。所以如果你在一個項目中工作,並且項目已經使用了一個約定,那就堅持下去。
Oracle/Sun使用「屬性優先」。 Android guidelines建議在開始時或在使用它們的方法之前。我傾向於將Oracle/Sun指南用於我自己的項目,因爲JDK源始終只需單擊一下即可。
我想我會同意你的第一個聲明。此外,感謝您的鏈接。 – BlueRomantic
- 1. inFile應放置在-o標誌之前還是之後?
- 2. JavaDoc應該在方法級註釋之前還是之後?
- 3. 我應該在我的自定義代碼之前還是在我重寫某個方法之後調用super.xxxx()?
- 4. 在實例化之前訪問方法
- 5. 在調用super之前/之後放置代碼viewDidLoad和viewWillAppear
- 6. 'cin'在換行符之前還是之前放置EOF?
- 7. 在@Transactional方法之前和之後執行代碼
- 8. 在方法Defenition之外定義實例變量(ruby)
- 9. WPF,在InitializeComponent之後直接放置代碼的不良做法?
- 10. 在類中放置方法
- 11. pcap_next()函數應該放在數據包傳輸之前還是之後?
- 12. 如何在調用方法之後和方法調用之前運行方法?
- 13. 在vim中如何在字之前和之後放置字符
- 14. 如何在子類中的方法之前和之後運行代碼?
- 15. ANTLR - 嵌入Java代碼,評估之前還是之後?
- 16. OpenGL/GLUT:glTranslatef和glRotatef在繪製立方體之前還是之後?
- 17. 在哪裏放置前景()方法
- 18. 在每個實例方法調用之前和之後執行回調?
- 19. 在Graphics.Dispose之前或之後釋放DC?
- 20. Const在CGFloat之前還是之後?
- 21. 在方法之間傳遞變量
- 22. 在方法之間傳遞變量
- 23. 在方法之間共享變量
- 24. 在方法之間傳遞變量?
- 25. 在actionPerformed()方法之外使用變量
- 26. 在閒置之後屏幕變黑之前調用了什麼方法?
- 27. 模型類(在MVC中)應該使用靜態方法還是實例方法?
- 28. 實例變量VS在創建方法
- 29. 在調用委託方法之前釋放UIViewController
- 30. 在PCA之前使用哪種縮放方法?
「想要」,而不是「想要」 –
非常感謝。 :-) – BlueRomantic