如果我聲明一個變量是私有的,我可以用另一種方法重新聲明它嗎?用Java中的訪問修飾符重新聲明變量
這很關鍵,因爲我使用Netbeans來生成我的GUI代碼,並且每次都使用相同的變量名稱。有什麼方法可以避免必須更改每個變量?
ADDITION/EDIT:這是否也適用於方法本身?對象如何?
如果我聲明一個變量是私有的,我可以用另一種方法重新聲明它嗎?用Java中的訪問修飾符重新聲明變量
這很關鍵,因爲我使用Netbeans來生成我的GUI代碼,並且每次都使用相同的變量名稱。有什麼方法可以避免必須更改每個變量?
ADDITION/EDIT:這是否也適用於方法本身?對象如何?
方法中的局部變量不能用可見性修飾符聲明(public
,private
,或默認值),只有類的屬性可以使用這些修飾符。
您可以在不同方法中重複使用相同的變量名稱,這不會導致衝突。這是一個很好的做法,即將名稱與具有不同名稱的方法中的局部變量命名爲類的屬性。爲了使自己清楚:
public class Test {
private String attribute1; // these are the attributes
private String attribute2;
public void method1() {
String localVariable1; // variables local to method1
String localVariable2;
}
public void method2() {
String localVariable1; // it's ok to reuse local variable names
String localVariable2; // but you shouldn't name them attribute1
// or attribute2, like the attributes
}
}
因此,如果兩個方法具有相同名稱的變量,它們的值可以不同? – 2012-01-09 16:27:32
好的,這回答我的問題,謝謝你這麼多! – 2012-01-09 16:29:22
@CodeAdmiral,請考慮接受答案:)(將支票標記在左邊) – 2012-01-09 16:30:27
一個局部變量和一個私人實例變量,即使具有相同的名稱,是兩個不同的變量。這是允許的。局部變量隱藏實例變量。訪問一個隱藏的實例變量的唯一方法是用this.
這是有效的前綴它,如果這是你指什麼:
public class Experiment {
private int test;
public void again()
{
int test ; //the local variable hides the previous one
}
}
一些什麼,但一個很好的答案+1 – 2012-01-09 16:29:01
你能粘貼你的代碼嗎?當這個變量存在時,變量不能被重新聲明 – 2012-01-09 16:23:23
好的,它將被編輯。等等,你的意思是整個代碼?因爲那意味着超過2000行... – 2012-01-09 16:26:13
不,我認爲沒問題,我不確定要理解你的問題,但是下面的答案是好的。 – 2012-01-09 16:27:59