作者PsMonkey (痞子军团团长)
看板java
标题Re: [问题] 禁止子类别宣告与上层变数名称相同的变数
时间Tue Mar 10 14:48:20 2009
※ 引述《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