Конструкторы
Конструктором называется метод, вызываемый для инициализации объекта при его создании.
Имя конструктора всегда совпадает с именем класса. Конструктор не может использовать оператор return и для него не указывается никакого типа возвращаемого значения. При объявлении конструктора можно указать модификаторы доступа public, protected или private.
Наличие явно описанного конструктора в классе не является обязательным. В этом случае при создании объекта используется конструктор по умолчанию. Такой конструктор не получает параметров и вызывает непосредственно конструктор суперкласса: super().
При этом, если суперкласс не имеет конструктора без списка параметров, то происходит ошибка компиляции.
Конструкторы не наследуются подклассами.
Тело конструктора заключается в фигурные скобки.
При этом первыми операторами должны быть указаны, если они используются, операторы вызова конструкторов данного класса или суперкласса.
Конструктор может иметь следующее формальное описание:
ИмяКласса (СписокПараметров) { ВызовКонструкторов БлокОператоров }
Вызов конструкторов выполняется операторами this и super с указанием в скобках списка параметров.
Например:
public class C extends A { public C() {this(1,20); } // Вызов конструктора данного класса public C(int i, int j) { } }
Вызов конструкторов подчиняется следующим правилам:
- при создании объекта любого заданного класса будет неявно выполнена цепочка вызовов всех конструкторов его суперклассов;
- первым будет выполнено тело конструктора для Object;
- каждый последующий конструктор в цепочке будет выполняться только после выполнения конструктора своего непосредственного суперкласса;
- при создании объекта будут инициализированы все переменные экземпляра.