Re: [問題] 禁止子類別宣告與上層變數名稱相同的變數

看板java作者 (痞子軍團團長)時間16年前 (2009/03/10 14:48), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/6 (看更多)
※ 引述《kenl (ken)》之銘言: : ...我原完明白測試程式碼想表達的 : 我不是想要寫個重覆宣告就會當掉的程式 : 我意思是如果程式很大,連自己也會忘記 : 有沒有辦法可以像使用private一樣 : 在compile time時就就compiler會告訴你變數的宣告範圍有問題 : 例如把全部變數宣告成 public 一定很方便 : programmer一定有能力使得程式運作正常 : 但一般都會盡量使用 private : 寧可complier提醒你class中沒有宣告變數 : 也不願在同一class中有兩個含糊的相同名稱 完全明白嗎? 那為甚麼我不明白你的明白? 請去看我寫的 Foo.toString() 看看他印出來的是什麼東西... 那並不是「含糊」的名稱,而是可以「肯定」是印出哪一個 所以沒有 warning 也是很合理的 更不會有所謂蓋來蓋去的問題 當然,compiler 可以分辨,不過,我還是不喜歡這種東西 雖然 Eclipse 的 setter generator 是長這樣... Orz class Foo{ private int orz; public setOrz(int orz){ this.orz=orz; } } : : 例如我有一個變數 int counter : : 在程式每個 class (包括inner class)中都共用 : : 如果別人(或者將來的我) : : 在 inner class 中再宣告 int counter=0 : : 這樣 complier 會完全沒有 warning : : (之前在這個 inner class 中一直使用外面的 counter : : 現在變成 inner class裡的counter都變成0了 : : 我想知道有沒有方法 : : 使得將來的我在這個 inner class 中宣告 int counter時 : : 會知道這樣會影響之前在這個inner class中使用外面counter的程式碼 : : ) 至於下面的 很好,那麼,就可以跳開我不熟的東西 (inner class 好難阿... Orz) 來講嘴砲層面的事情 [奸笑] 以你的敘述來說... 1. 為甚麼你要生出「一堆」inner class? 很多 coding style 都建議一個 class 一個 file (當然,還是有很多考量 or 偷懶的時候,會不適用) 切出不同的 class,就可以用修飾字跟 package 來達到某種程度的權限控制 2. 為甚麼不包成 getter, setter? : : 我知道如果當初寫程式時 : : 每次都明確寫成 this.counter 或 parent.counter : : 這樣的話將來在 inner class 再宣告counter時 : : 也不會有bug,但這樣很不方便 -- 侃侃長論鮮窒礙 首頁:http://www.psmonkey.idv.tw 眾目睽睽無心顫 Blog:http://ps-think.blogspot.com 煢居少聊常人事 殺頭容易告白難 歡迎參觀 Java 版(@ptt.cc)精華區 \囧/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.114.200.219
文章代碼(AID): #19jWqtP7 (java)
討論串 (同標題文章)
文章代碼(AID): #19jWqtP7 (java)