Это вызов конструктора. Если ваш класс реализует разные конструкторы с разным количеством аргументов, вы можете связать свои конструкторы следующим образом:
class A {
public A(boolean arg) {
...
}
public A() {
this(false); // invokes the constructor with the boolean argument
}
}
Иногда имеет смысл создать приватный конструктор, принимающий разные аргументы, и предоставить общедоступным и / или защищенным конструкторам другие / меньшее количество аргументов и делегировать конструкцию объекта этому приватному конструктору.
Важно знать, что никакой другой код нельзя ставить перед вызовом этого (...). Однако после вызова этого (...) вы можете делать все, что могли в любом другом конструкторе.
Edit: так как this (...) вызывает конструктор, он может быть вызван только из других конструкторов (принадлежащих к тому же классу).