名称相同但类型不同的变量

我在这里已经读到,在Java中,具有相同名称但不同类型的两个变量可以在同一范围内共存。我的意思是这个

class test

{

private int x;

private double x;

}

但是所有的Java IDE都不允许这样的代码。我想知道这样的代码在语法上是否正确,或者只是IDE不允许这样的代码防止歧义。

无论如何,这是网站的摘录

“如果幸运的话,您也许能够重新编译Jad的输出。

JAD通常会重命名有问题的字段,并创建一个可重新编译的文件……唯一的问题是重新编译的文件与原始类不兼容。”

回答:

同一范围中不能存在具有相同名称(但类型不同)的变量。考虑一下是否有可能,那么Java编译器将如何确定您的意思。

考虑一下此代码段

class test

{

private int x;

private double x;

test() //constructor

{

System.out.println(x); //Error cannot determine which x you meant

}

}

Java编译器无法理解您实际上指的是哪个x。因此,这样的代码在语法上是不正确的且不可编译。

但是,存在诸如ClassEditor之类的工具,它们可以在创建生成的类文件之后对其进行修改。可以将两个变量的名称更改为相同。

但是,此类不必由Java jvm运行。

您引用的软件即JAD可以在类文件中重命名此类重复的命名变量,这样您将获得的源代码实际上在语法上是正确的

以上是 名称相同但类型不同的变量 的全部内容, 来源链接: utcz.com/qa/404135.html

回到顶部