使用Java中的访问修饰符重新声明变量

时间:2012-01-09 16:20:14

标签: java user-interface netbeans

如果我声明一个变量是私有的,我可以在另一个方法中重新声明它吗?

这很关键,因为我使用Netbeans生成我的GUI代码,并且每次都使用相同的变量名称。有什么方法可以避免改变每个变量吗?

ADDITION / EDIT:这是否也适用于方法本身?对象怎么样?

4 个答案:

答案 0 :(得分:3)

局部变量和私有实例变量,即使名称相同,也是两个不同的变量。这是允许的。局部变量隐藏实例变量。访问隐藏实例变量的唯一方法是在其前面添加this.

答案 1 :(得分:2)

方法中的局部变量不能使用可见性修饰符(publicprivateprotected或默认值)声明,只有类的属性才能使用这些修饰符。 / p>

您可以在不同的方法中重用相同的变量名称,它不会导致冲突。在一个方法中将局部变量命名为与该类属性不同的名称是一个好习惯。为了使自己清楚:

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
    }

}

答案 2 :(得分:2)

这是有效的,如果这是你所指的:

public class Experiment {

    private int test;

      public void again()
        {
            int test ;   //the local variable hides the previous one
        }

}

答案 3 :(得分:1)

考虑以下

public class Example {

  private String outerString = "outer";

  public void exampleMethod(){
    String outerString = "inner";
    System.out.println(outerString);      // prints "inner"
    System.out.println(this.outerString); // prints "outer"
  }
}

方法外的变量被方法中具有相同名称的变量遮蔽。这种事情是沮丧的,因为它很容易混淆。您可以阅读更多herehere

相关问题