Конструкторы.

20-01-2020

Конструктор – это специальный метод, который имеет то же имя метода, что и класс (т.е. имя конструктора и имя класса совпадают). В рассмотренном выше классе Circle мы определили три перегружаемых версии конструктора Circle(......). Конструктор используется для создания и инициализации всех переменных-членов класса. Для создания объекта некоторого класса надо использовать специальный оператор “new” после обращения к одному из конструкторов.

Например,

Circle c1 = new Circle();
Circle c2 = new Circle(1.0);
Circle c3 = new Circle(3.0,"green");

Отличия конструктора от обычного метода:

  • имя конструктора всегда совпадает с именем класса и по соглашению об именах начинается с большой буквы;
  • у конструктора нет возвращаемого значения, следовательно, не разрешено использовать предложение return в теле конструктора;
  • конструктор может быть вызван только через оператор “new”, при этом может быть вызван только 1 раз для создаваемого объекта;
  • конструкторы не наследуются

Конструктор по умолчанию: конструктор без параметров называется конструктором по умолчанию. Такой конструктор инициализирует переменные-члены класса их значениями по умолчанию, например, Circle() в приведенном примере инициализирует переменные radius и color их значениями по умолчанию. Напомним, что перегрузка метода означает, что метод с одним и тем же именем может иметь различные реализации, что достигается различием в списке параметров (их количеством, типом или порядком). Конструктор, как и другие методы, может быть перегружаемым. В рассмотренном классе Circle мы определили 3 перегружаемых версии конструкторов с одинаковым именем Circle, различающихся списком параметров: В зависимости от списка фактических параметров будет вызываться соответствующий конструктор. Если список параметров не соответствует ни одному методу, будет выдана ошибка компиляции.

Литература

  1. О.И. Гуськова, "ООП в Java", Москва, 2018