Java 请问a.b和a$b的区别是什么?
有时我会遇到aClass$field这样的表达式,而不是aClass.field。它在java中是什么意思?也许这是一个原始的问题,但在网上搜索美元是不可能的。当然,它会给出非编程的答案。所以,请帮帮忙。根据 $字符只能在机械生成的源代码中使用 代码,或者很少访问遗留系统上预先存在的名称 类文件上的Java 请问a.b和a$b的区别是什么?,java,class,syntax,inner-classes,Java,Class,Syntax,Inner Classes,有时我会遇到aClass$field这样的表达式,而不是aClass.field。它在java中是什么意思?也许这是一个原始的问题,但在网上搜索美元是不可能的。当然,它会给出非编程的答案。所以,请帮帮忙。根据 $字符只能在机械生成的源代码中使用 代码,或者很少访问遗留系统上预先存在的名称 类文件上的$说明(例如AClass$BClass.class)BClass嵌套在AClass中 A.B仅在代码级别上,而A$B在生成的类级别上。根据 $字符只能在机械生成的源代码中使用 代码,或者很少访问遗留系
$
说明(例如AClass$BClass.class
)BClass
嵌套在AClass
中
A.B
仅在代码级别上,而A$B
在生成的类级别上。根据
$字符只能在机械生成的源代码中使用
代码,或者很少访问遗留系统上预先存在的名称
类文件上的$
说明(例如AClass$BClass.class
)BClass
嵌套在AClass
中
A.B
仅在代码级别,而A$B
在生成的类级别。$
在Java中没有特殊意义。它可以用来命名每个变量或方法,也可以作为第一个(或唯一的)字符。在这个例子中,下面的类是完全合法的
public class Test {
private int $;
private int $field;
private int my$field;
private void $() {
}
private void $method() {
}
private void my$method() {
}
}
但是,不能使用
$
命名类。当Java编译器在类a
中遇到内部类B
时,生成的.class
文件将命名为a$B.class
。因此,使用$
字符命名类将导致编译错误。$
在Java中没有特殊意义。它可以用来命名每个变量或方法,也可以作为第一个(或唯一的)字符。在这个例子中,下面的类是完全合法的
public class Test {
private int $;
private int $field;
private int my$field;
private void $() {
}
private void $method() {
}
private void my$method() {
}
}
但是,不能使用
$
命名类。当Java编译器在类a
中遇到内部类B
时,生成的.class
文件将命名为a$B.class
。因此,使用$
字符命名类将导致编译错误。@skaffman否,谢谢。你提到的这个问题,是一个关于使用这个主题的更详细的问题。恐怕这对我没有帮助。我问的是一个最简单的问题——a$b是什么?@skaffman不,谢谢。你提到的这个问题,是一个关于使用这个主题的更详细的问题。恐怕这对我没有帮助。我问的是一个最简单的问题——a$b是什么?谢谢你给出了一个可以理解的答案,就我的原始问题而言。顺便说一句:在Eclipse的选项卡中没有.class后缀。它是简单地缩短还是有更深的含义?Eclipse中的选项卡将向您显示类的逻辑名称。如果您正在编辑一个Test.java
文件,其中包含一个Test
类,Eclipse将只显示类名Test
。最后,Test
类将编译成一个Test.class
文件。您可以使用Package explorer或Navigator视图查看.java
和.class
文件。感谢您提供了我的基本问题的可理解答案。顺便说一句:在Eclipse的选项卡中没有.class后缀。它是简单地缩短还是有更深的含义?Eclipse中的选项卡将向您显示类的逻辑名称。如果您正在编辑一个Test.java
文件,其中包含一个Test
类,Eclipse将只显示类名Test
。最后,Test
类将编译成一个Test.class
文件。您可以使用Package explorer或Navigator视图查看.java
和.class
文件。谢谢,和+1,但后面的答案对我来说更容易理解。谢谢,和+1,但后面的答案对我来说更容易理解。