[J2SE] 變數命名與coding style問題

看板java作者 (tnsshnews)時間9年前 (2015/08/21 09:36), 編輯推噓2(208)
留言10則, 5人參與, 最新討論串1/2 (看更多)
Dear all, 有幾個關於變數宣告的問題想請教一下, 1. global的變數在class最開頭的地方宣告完之後, 要馬上給予初始值嗎? 還是一率都在constructor給呢? 好處跟差別會是什麼呢? e.g public class Test { public static boolean xxxx = true; public List<String> yyyy = new ArrayList<String>(); public Set<Integer> zzzz = new HashSet<Integer>(); ..... 2. 如果在一個method裡面, 有多個變數要宣告, 但宣告完之後又要做一些處理, 那是要把宣告通通集中在最前面, 後面在一個一個處理, 還是宣告一個處理一個, 在宣告一個, 在處理一個呢? e.g public void test(){ AAA aaa = new AAA(); aaa.setxxx... aaa.... BBB bbb = new BBB(); bbb.setxxx... bbb.... ... } 3. class的global變數一率都用private還是public好呢? 看到很多人都會用private, 然後再用get/set去設定值還有取值, 不知這是一種好習慣還是有什麼考量呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.204.165 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1440121015.A.0F3.html

08/21 10:06, , 1F
1 不同ctor、不同參數會不同的留著,其他就先給初值了
08/21 10:06, 1F

08/21 11:45, , 2F
直接給值編完還是幫你搬到constructor裡呼叫super()完之後
08/21 11:45, 2F

08/21 12:50, , 3F
2 宣告時離處理的地方越近越好
08/21 12:50, 3F

08/21 16:43, , 4F
3.private/public 的考量不在於全域, 在於要不要外面直接改
08/21 16:43, 4F

08/21 16:43, , 5F
不給直接改的 (例如有一些內部條件要保持) 一定要 private
08/21 16:43, 5F

08/21 16:44, , 6F
s/要不要外面/要不要讓外面/
08/21 16:44, 6F

08/21 16:45, , 7F
那基本上由於物件的封裝性, 大部份東西都會是不給直接改的
08/21 16:45, 7F

08/21 16:46, , 8F
就算多少可以的一般習慣上也不會直接開放
08/21 16:46, 8F

08/29 12:51, , 9F
可以參考google coding style
08/29 12:51, 9F
文章代碼(AID): #1Lre2t3p (java)
文章代碼(AID): #1Lre2t3p (java)