实例变量可以由方法使用,也可以在方法内部声明局部变量,其名称与Java中的实例变量相同

时间:2016-10-18 09:42:18

标签: java

例如

Class Moon{


    int a;

    void mango()
    {
        a=9; // put 9 in instance variable "a"
    }

    void orange()
    {
        int a; // declare local variable with same name as of instance variable

    }

}

我们可以修改方法中的实例变量的值,并且我们可以声明与实例变量同名的局部变量吗?

2 个答案:

答案 0 :(得分:1)

当存在实例变量和局部变量时,您可以将实例变量与this.a一起使用,并使用仅a的本地变量。

常用:

public void setA(int a) {
    this.a = a
}

答案 1 :(得分:1)

从方法中修改实例变量是:

  1. 由java语言规范和
  2. 规定
  3. 非常必要:那就是面向对象编程的工作方式。
  4. (我的意思是,如果您无法在方法中修改实例变量,那么您将从哪里修改它?)

    如果您希望某个特定的实例变量可以在方法中修改,那么您必须使用final关键字对其进行标记,如下所示:final int a; - 你仍然可以从构造函数初始化它。

    声明一个与实例变量同名的局部变量是完全有效的java;但是,建议不要这样做,这就是为什么通常可以配置IDE以在执行此操作时发出警告。实际上,如果您的IDE没有给出警告,那么这可能意味着您没有启用足够的警告进行编译。 始终启用尽可能多的警告。