Учебники

Java — Конструкторы

Конструктор инициализирует объект при его создании. Он имеет то же имя, что и его класс, и синтаксически похож на метод. Однако конструкторы не имеют явного возвращаемого типа.

Как правило, вы будете использовать конструктор для присвоения начальных значений переменным экземпляра, определенным классом, или для выполнения любых других процедур запуска, необходимых для создания полностью сформированного объекта.

Все классы имеют конструкторы, независимо от того, определяете вы их или нет, потому что Java автоматически предоставляет конструктор по умолчанию, который инициализирует все переменные-члены нулями. Однако, как только вы определите свой собственный конструктор, конструктор по умолчанию больше не будет использоваться.

Синтаксис

Ниже приводится синтаксис конструктора —

class ClassName {
   ClassName() {
   }
}

Java допускает два типа конструкторов, а именно —

  • Без аргументов Конструкторы
  • Параметризованные Конструкторы

Без аргументов Конструкторы

Поскольку имя указывает, что конструкторы Java без аргументов не принимают никаких параметров, вместо этого, используя эти конструкторы, переменные экземпляра метода будут инициализированы с фиксированными значениями для всех объектов.

пример

Public class MyClass {
   Int num;
   MyClass() {
      num = 100;
   }
}

Вы бы вызвали конструктор для инициализации объектов следующим образом

public class ConsDemo {
   public static void main(String args[]) {
      MyClass t1 = new MyClass();
      MyClass t2 = new MyClass();
      System.out.println(t1.num + " " + t2.num);
   }
}

Это дало бы следующий результат

100 100

Параметризованные Конструкторы

Чаще всего вам понадобится конструктор, который принимает один или несколько параметров. Параметры добавляются в конструктор так же, как они добавляются в метод, просто объявляйте их в скобках после имени конструктора.

пример

Вот простой пример, который использует конструктор —

// A simple constructor.
class MyClass {
   int x;
   
   // Following is the constructor
   MyClass(int i ) {
      x = i;
   }
}

Вы бы вызвали конструктор для инициализации объектов следующим образом:

public class ConsDemo {
   public static void main(String args[]) {
      MyClass t1 = new MyClass( 10 );
      MyClass t2 = new MyClass( 20 );
      System.out.println(t1.x + " " + t2.x);
   }
}

Это даст следующий результат —