JAVA中的类不要使用$符的原因解析

Posted 李诗莹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中的类不要使用$符的原因解析相关的知识,希望对你有一定的参考价值。

下面是在Java中标识符的定义
 
1.标识符由字母、数字、货币符号(¥、$等)、连接符号(_等)组成。(这里的字母为Unicode字符集, 而不再局限于传统的26个英文字母。)
2.标识符的首字符可以是字母、货币符号与连接符号,但不能是数字。
3.标识符不能与Java中的关键字相同。
4.标识符不能和Java中预定义的字面常量名称相同(true、false、 null)。

但是有时候轻易使用$时,会出现你意想不到的惊喜哦。比如下面的代码:

在Ly的类中创建了一个内部类xy 然后呢?
在运行这个类的时候经过编译惊奇的事情出现了生成了`Ly$xy.class` 与 Ly.class两个文件如果我么在写一个 `Ly$xy `那么是不是会出现类重复呢?

 

 

 

 

如果按照下面的方法写的话会出现类重复的现象
究竟是哪个类重复了呢?可以参考上面的运行结果进行分析
从上面运行产生的class文件可得`Ly$xy.class`会出现重复的现象,所以会报错

 

 

以上是关于JAVA中的类不要使用$符的原因解析的主要内容,如果未能解决你的问题,请参考以下文章

Java中各种(类方法属性)访问修饰符与修饰符的说明

java - 为啥在java中可以具有默认修饰符的类不能受到保护

修饰符的权限

马昕璐201771010118《面向对象程序设计(java)》第七周学习总结

Java中各种(类方法属性)访问修饰符与修饰符的简单说明

java中final修饰符的使用