> For the complete documentation index, see [llms.txt](https://kaze.gitbook.io/qa-theory/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kaze.gitbook.io/qa-theory/osnovy-programmirovaniya-na-java/konstruktory.md).

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

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

1. **Имя и сигнатура**:
   * Имя конструктора совпадает с именем класса.
   * У конструктора нет возвращаемого типа.
   * Конструкторы могут быть перегружены, то есть класс может иметь несколько конструкторов с разными параметрами.
2. **Конструктор по умолчанию**:
   * Если в классе не определен явно ни один конструктор, то компилятор Java автоматически создает конструктор по умолчанию без параметров.
   * Этот конструктор инициализирует поля класса значениями по умолчанию (например, числовые поля нулями, ссылочные поля `null` и т. д.).
3. **Передача параметров**:
   * Конструкторы могут принимать параметры, которые используются для инициализации полей объекта.
   * Параметры конструктора передаются в момент создания объекта при вызове оператора `new`.
4. **Вызов других конструкторов**:
   * Конструкторы могут вызывать другие конструкторы этого же класса с помощью ключевого слова `this`. Это позволяет избежать дублирования кода в конструкторах и повторно использовать код инициализации.

Пример конструктора в классе:

```java
public class MyClass {
    private int value;

    // Конструктор без параметров (конструктор по умолчанию)
    public MyClass() {
        value = 0;
    }

    // Перегруженный конструктор с параметром
    public MyClass(int val) {
        value = val;
    }

    // Перегруженный конструктор, вызывающий другой конструктор класса
    public MyClass(int val1, int val2) {
        this(val1 + val2); // Вызываем другой конструктор этого же класса
    }
}
```
