Java 我们如何创建一个与其类同名的对象?
我们如何在没有编译器问题的情况下为类和对象使用相同的名称Java 我们如何创建一个与其类同名的对象?,java,javac,Java,Javac,我们如何在没有编译器问题的情况下为类和对象使用相同的名称 class A{ public static void main (){ A A = new A (); } } 或 java编译器如何处理此问题?在java中,指定类名和变量名完全相同是绝对正确的。编译器理解语法,因此它知道程序的哪个部分表示标识符,哪个部分表示类名 但您永远不应该这样做,因为这将成为可读性的噩梦。绝对会误导和违反Java命名约定。最简单的答案是:因为没有任何东西说它会引起问题。但当然,
class A{
public static void main (){
A A = new A ();
}
}
或
java编译器如何处理此问题?在java中,指定类名和变量名完全相同是绝对正确的。编译器理解语法,因此它知道程序的哪个部分表示标识符,哪个部分表示类名
但您永远不应该这样做,因为这将成为可读性的噩梦。绝对会误导和违反Java命名约定。最简单的答案是:因为没有任何东西说它会引起问题。但当然,这并不是一个好主意;-)我为什么要这样做?弗洛里安先生,请再看一次这个问题。。!这是因为无论
A
是类名还是变量名,A.someStaticMethod()
的含义都完全相同。所以没有歧义。@Jesper实际上不是。这是因为名为a
的变量的声明在外部范围内隐藏了类a
的声明。这纯粹是一个范围问题。不是语法。@EJP我感兴趣。。。你说的“范围界定”是什么意思?
class A{
public static void main(){
String String="java";
System.out.println(String);
}
}