如果我声明一个变量是私有的,我可以用另一种方法重新声明它吗?用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