这个Java代码中的下划线是什么?
我刚开始学习Java。
我帮助我学习的朋友刚刚寄给我这个消息,说'弄明白了'。
不幸的是我无法阅读这个。 Perl看起来像我。
class _{_ _;_(){_=this;}}
这是什么意思?
_
是class级名称。 这是一个非常混乱的,但它的作品!
随class改名为:
class Something {Something something;Something(){something=this;}}
并清理:
class Something { Something something; Something() { something=this; } }
而你可以发疯这个奇怪的命名:)
class _{_ __;_ ____;_(){__=this;____=__;}_(_ ___){__=___;}}
实际上,Unicode甚至是支持的,所以这是有效的:
class 合法類別名稱{合法類別名稱(){}}
_
是类名,下划线是一个有效的Javavariables名,你只需要缩进你的代码就可以去混淆它:
class _{ _ _; _(){ _=this; } }
喜欢:
class A{ AA; A(){ A=this; } }
编辑:感谢@Daniel Fischer
types名称和variables名称具有不同的名称空间。 并且例如代码
class FOO { FOO FOO; }
在Java中是有效的。
概要
-
_
是一个类名,例如在class _{
-
_
是一个class级成员的名字,例如_ _;
和_=this
-
_
是一个构造函数的名字,例如_()
请记住:Java使用六个不同的名称空间:
- 包名称,
- types名称,
- 字段(可变)名称,
- 方法名称,
- 局部variables名称(包括参数)和
- 标签。
另外,每个声明的枚举都有自己的命名空间。 不同types的相同名称不冲突; 例如, 一个方法可以被命名为一个局部variables 。
这是很好的例子。 Java允许unicode成为标识符,所以你可以写如下的东西:
class ⲥlass { ⲥlass claѕѕ; }
这里class级名字的c是'ⲥ'(U + 2CA5 COPY SMALL LETTER SIMA)和
对象名称为''(U + 0455 CYRILLIC小写字母DZE)。