名称相同但类型不同的变量
我在这里已经读到,在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