我有一个 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/