私はJavaを学び始めたばかりです。
私の勉強を手伝ってくれている友達がこれを送ってくれて、「これを理解して」と言った。
残念ながら私はこれを読むことができません。私にはPerlのように見えます。
class _{_ _;_(){_=this;}}
どういう意味ですか?
_
クラス名です。非常に紛らわしいものですが、機能します。
クラスの名前が変更された場合:
class Something {Something something;Something(){something=this;}}
そしてクリーンアップ:
class Something {
Something something;
Something() {
something=this;
}
}
そして、あなたはこの奇妙な命名に夢中になることができます:)
class _{_ __;_ ____;_(){__=this;____=__;}_(_ ___){__=___;}}
実際、Unicodeもサポートされているため、これは有効です。
class 合法類別名稱{合法類別名稱(){}}
_
はクラス名、アンダースコアは有効なJava変数名です。コードをインデントして、難読化を解除する必要があります。
class _{
_ _;
_(){
_=this;
}
}
好き:
class A{
A A;
A(){
A=this;
}
}
編集: @DanielFischerに感謝します
タイプ名と変数名の名前は異なります。たとえば、コード
class FOO { FOO FOO; }
はJavaで有効です。
概要
_
はクラス名です。class _{
_
クラスメンバー名です。例:_ _;
および_=this
_
コンストラクター名です。_()
注意:Javaは6つの異なる名前空間を使用します。
- パッケージ名、
- タイプ名、
- フィールド(変数)名、
- メソッド名、
- ローカル変数名(パラメーターを含む)、および
- ラベル。
さらに、宣言された各列挙型には独自の名前空間があります。異なるタイプの同一の名前は競合しません。たとえば、メソッドにはローカル変数と同じ名前を付けることができます。
それは良い例です。Javaでは、Unicodeを識別子にすることができるため、次のように記述できます。
class ⲥlass {
ⲥlass claѕѕ;
}
ここで、クラス名のcは「ⲥ」(U + 2CA5 COPTIC SMALL LETTER SIMA)であり、
オブジェクト名の「ѕ」(U + 0455 CYRILLIC SMALL LETTER DZE)。