Конструктор класса в Java
Last updated: 3 мая 2025 г.У класса может быть специальный метод, который не имеет возвращаемого значения и который имеет то же самое имя, что и класс.
Этот метод называется конструктором.
Он нужен чтобы при создании объекта класса можно было выполнить какие-то действия — например, сразу при создании объекта присвоить его полям значения.
1class Cat{
2 String name;
3 String color;
4
5 // Видим, что перед Cat ничего не указано —
6 // это значит, что этот метод это точно констурктор
7 // и что он не возвращает накакого значения.
8 // При создании объекта класса
9 // в конструктор будут передаваться
10 // два строковых значения — имя кошки и её цвет.
11 Cat (String catName, String catColor) {
12 // И эти переданные значения
13 // присваиваются полям name и color объекта.
14 name = catName;
15 color = catColor;
16 }
17
18 void sayMeow(){
19 System.out.println("Meow");
20 }
21}
22
23// Класс с методом main, где создаётся объект кота.
24class Constructors{
25 public static void main(String[] args) {
26 // Очевидно, что ниже после new вызываеться
27 // конструктор, который мы определили выше.
28 // Через него создаваемому объекту кошки
29 // задаеться имя и цвет.
30 Cat somecat = new Cat("Barsik", "White");
31
32 // Таким образом в конструкторе
33 // мы можем выполнять какие-либо действия
34 // сразу при создании объекта.
35 // Например, присвоить
36 // полям объекта значения.
37
38 // Выведем на консоль установленное
39 // в конструкторе имя кошки.
40 System.out.println(somecat.name);
41 }
42}
Вывод:

На самом деле, мы уже сталкивались с конструктором в прошлом уроке когда создавали объект кота вот так:
Cat somecat = new Cat();.
В данном случае это конструктор по умолчанию, который автоматически создаётся компилятором, если в классе не определён ни один другой. Он позволяет создавать объекты без параметров. Однако если мы явно добавим свой конструктор (например, с параметрами), компилятор уже не создаст конструктор по умолчанию — его придётся прописать вручную.
Следующие уроки
Инкапсуляция
13
мин.
Модификаторы доступа
12
мин.
Свойства в ООП (getters, setters)
14
мин.