Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 请问a.b和a$b的区别是什么?_Java_Class_Syntax_Inner Classes - Fatal编程技术网

Java 请问a.b和a$b的区别是什么?

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$field这样的表达式,而不是aClass.field。它在java中是什么意思?也许这是一个原始的问题,但在网上搜索美元是不可能的。当然,它会给出非编程的答案。所以,请帮帮忙。

根据

$字符只能在机械生成的源代码中使用 代码,或者很少访问遗留系统上预先存在的名称

类文件上的
$
说明(例如
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,但后面的答案对我来说更容易理解。