java - 为什么这个程序不给出歧义错误

标签 java this

我有一个 java 程序,其中使用参数化构造函数,参数名称与实例变量的名称相同。 在这种情况下,我们需要使用这个关键字。但是当我不使用此关键字时,它不会给出任何错误,而是使用默认值初始化实例变量。

class Demo{
    int a;
    Demo(int a)
    {
       a = a;
    }

    public static void main(String args[])
    {
        Demo d = new Demo(5);
    }
}

但是当这个程序执行时,a的值变成了0。怎么会呢?

最佳答案

没有歧义 - 在 a = a; 中,both a 明确指代参数,因为那是“最内层” "名为 a 的变量。

关于java - 为什么这个程序不给出歧义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32002531/

相关文章:

java - 如何将数据库中的图片加载到ListView中?

Java-如何修复 Spring 框架中的异常?

C# "this"过度使用?

javascript - 我怎么知道什么时候在 JS 函数上使用 .bind()?

java - 在 Java SwingWorker 方法的签名中使用最终变量

java - LinearLayout addview() 禁用第一个 child 的 margin

javascript - javascript对象

javascript - 是否可以将全局变量与 $(this) 一起使用?

java - 具有出现次数和排序的字符串列表

javascript 原型(prototype)与 this