В Java построены объекты. Каждый раз, когда вы создаете новый объект, вызывается хотя бы один конструктор . У каждого класса есть конструктор, хотя если вы не создадите , явным образом, компилятор построит его для вас. Существует множество правил относительно конструкторов , давайте сосредоточимся на основных правилах декларации. Вот простой пример:
class Tets{
protected Test() { } // this is Test's constructor
protected void Test() { } // this is a badly named,
// but legal, method
}
Первое, что нужно заметить, это то, что конструкторы очень похожи на методы. A Главное отличие заключается в том, что конструктор никогда не может когда-либо иметь тип возврата ... когда-либо! Объявления конструктора могут, однако, иметь все обычные модификаторы доступа, и они могут принимать аргументы (в том числе var-args), как и методы. Другое правило BIG , чтобы понять о конструкторах, заключается в том, что они должны иметь то же имя, что и класс, в котором они объявлены. Конструкторы не могут быть помечены статическим (они являются после того, как все это связано с объектом конкретизации), они не могут быть помечены окончательным или абстрактным (потому что они не могут быть переопределены). Вот некоторые легальные и нелегальные заявления конструктор:
class Foo2 {
// legal constructors
Foo2() { }
private Foo2(byte b) { }
Foo2(int x) { }
Foo2(int x, int... y) { }
// illegal constructors
void Foo2() { } // it's a method, not a constructor
Foo() { } // not a method or a constructor
Foo2(short s); // looks like an abstract method
static Foo2(float f) { } // can't be static
final Foo2(long x) { } // can't be final
abstract Foo2(char c) { } // can't be abstract
Foo2(int... x, int t) { } // bad var-arg syntax
}
визит https://java.net/downloads/jfjug/SCJP%20Sun%20Certified%20Programmer%20for%20Java%206-0071591060.pdf
Я не вижу каких-либо явных определений конструктора. –