我刚开始学习Java。
我帮助我学习的朋友刚刚给我发了这个并说'搞清楚'。
不幸的是我无法读到这个。对我来说它看起来像Perl。
class _{_ _;_(){_=this;}}
这是什么意思?
答案 0 :(得分:153)
_
是类名。这是一个非常令人困惑的,但它的确有效!
重命名该课程:
class Something {Something something;Something(){something=this;}}
并清理干净:
class Something {
Something something;
Something() {
something=this;
}
}
你可以对这个奇怪的命名:)
class _{_ __;_ ____;_(){__=this;____=__;}_(_ ___){__=___;}}
事实上,甚至支持Unicode,所以这是有效的:
class 合法類別名稱{合法類別名稱(){}}
答案 1 :(得分:70)
_
是类名,下划线是一个有效的Java变量名,你只需缩进代码就可以对其进行反混淆:
class _{
_ _;
_(){
_=this;
}
}
喜欢:
class A{
A A;
A(){
A=this;
}
}
编辑:感谢@Daniel Fischer
类型名称和变量名称具有不同的名称空间。例如,代码
class FOO { FOO FOO; }
在Java中有效。
<强>摘要强>
_
是一个类名,例如class _{
_
是一个班级成员名称,例如_ _;
和_=this
_
是构造函数名称,例如在_()
请记住:Java使用six different namespaces:
- 包名称,
- 类型名称,
- 字段(变量)名称,
- 方法名称,
- 本地变量名称(包括参数)和
- 标签。
此外,每个声明的枚举都有自己的命名空间。不同类型的相同名称不冲突;例如,方法的名称可以与本地变量相同。
答案 2 :(得分:11)
class ⲥlass {
ⲥlass claѕѕ;
}
这里的班级名称c是'ⲥ'(U + 2CA5 COPTIC SMALL LETTER SIMA)和
对象名称'''(U + 0455 CYRILLIC SMALL LETTER DZE)。