Я только начал изучать Java.
Мой друг, который помогает мне учиться, просто прислал мне это и сказал: "Подумай об этом".
К сожалению, я не могу это прочитать. Мне кажется Perl.
class _{_ _;_(){_=this;}}
Что это значит?
Я только начал изучать Java.
Мой друг, который помогает мне учиться, просто прислал мне это и сказал: "Подумай об этом".
К сожалению, я не могу это прочитать. Мне кажется Perl.
class _{_ _;_(){_=this;}}
Что это значит?
_
- это имя класса. Это очень запутанный, но он работает!
С классом, переименованным:
class Something {Something something;Something(){something=this;}}
И очистить:
class Something {
Something something;
Something() {
something=this;
}
}
И вы можете сходить с ума от этого нечетного наименования :)
class _{_ __;_ ____;_(){__=this;____=__;}_(_ ___){__=___;}}
Фактически, Unicode поддерживается даже, поэтому это действительно:
class 合法類別名稱{合法類別名稱(){}}
_
- это имя класса, underscore - это допустимое имя переменной Java, вам просто нужно отступывать свой код, чтобы деобфусить его:
class _{
_ _;
_(){
_=this;
}
}
Вроде:
class A{
A A;
A(){
A=this;
}
}
Изменить: благодаря @Daniel Fischer
Имена типов и имена переменных имеют разные пространства имен. и, например, код
class FOO { FOO FOO; }
действителен в Java.
Резюме
_
- это имя класса, например, class _{
_
- это имя члена класса, например, _ _;
и _=this
_
- имя конструктора, например. при _()
Помните: Java использует шесть разных пространств имен:
- Имена пакетов,
- имена типов,
- имена полей (переменных),
- имена методов,
- имена локальных переменных (включая параметры) и
- этикетки.
Кроме того, каждый объявленный enum имеет собственное пространство имен. Идентичные имена разных типов не конфликтуют; например, метод может называться так же, как локальная переменная.
хорошо это хороший пример. Java позволяет unicode быть идентификаторами, поэтому вы можете написать что-то вроде:
class ⲥlass {
ⲥlass claѕѕ;
}
здесь имя класса c is 'ⲥ' (U + 2CA5 COPTIC SMALL LETTER SIMA) и
имя объекта 'ѕ' (U + 0455 CYRILLIC SMALL LETTER DZE).