解决成员变量与局部变量重名的问题

编写Java程序,当成员变量与局部变量重名时,输出成员变量的值。

  运行结果:

实例的运行结果如图1所示。

  1  TestVariabel类的运行结果

  解题关键:

l         当成员变量与局部变量名称相同时,成员变量将被隐藏。

l         当成员变量被隐藏时,可以使用“this.”作为前缀来访问成员变量。

  答案:

创建TestVariable类,名称为TestVariable.java,在该类中,首先定义一个名称为a的成员变量,然后定义printStr()方法,在该方法中,再定义一个名称为a的局部变量,并且输出局部变量a和成员变量a的值,最后在main()方法中,实例化TestVariable类的对象,并调用printStr()方法。TestVariable类的完整代码如下:

public class TestVariable {

      private int a = 100;                                          // 定义成员变量

 

      public void printStr() {

            int a = 1000;                                              // 定义局部变量

            System.out.println("局部变量:" + a);         // 输出局部变量的值1000

            System.out.println("成员变量:" + this.a);   // this关键字输出成员变量的值100

      }

 

      public static void main(String[] args) {

            TestVariable tv = new TestVariable();

            tv.printStr();                                               //调用printStr()方法

      }

}