Как стать автором
Обновить

Что такое «конструктор» на примере чашки с кофе

Всем привет.

Это статья из категории песочницы и будет полезна только тем, кто только-только начал изучать Java, или любой другой язык программирования в целом. Мы разберем, что такое констркутор на элементарном примере чашки с кофе, чаем или чем-либо другим, это уже как вам хочется:)

Сначала я приведу пример с чашкой, а потом более реальный обьявлением конструктора и созданием обьекта с помощью него.

Пример с чашкой кофе


Чашка с кофе имеет определенные компоненты и их свойства. В нашем случае чашка — это конструктор; кофейные зерна, сахар, вода — компоненты (параметры). При заваривании (конструировании) кофе, в чашку мы добавляем сами кофейные зерна, сахар и воду. Кофейные зерна имеют такое свойство, как сорт; сахар — цвет (белый или коричневый), а вода — просто вода. По сути, чашка + кофейные зерна + сахар + вода == чашка с кофе. И после создания эта чашка с кофе будет иметь следующие свойства: кофейные зерна от фирмы «Кофеин», сахар белый, вода обычная (т.е. обьект aCupOfCoffee будет иметь поля coffee = «Кофеин», sugar = «белый», water = «обычная»).

Да, это не лучший пример, поэтому ниже рассмотрим все это на практике.

Что такое конструктор

Конструктор — это же метод (или, проще говоря, функция). Единственное отличие заключается лишь в том, что название этого метода совпадает с названием класса. То есть, если у вас класс называется JavaClass, то и конструктор будет иметь название JavaClass.

Какие функции он выполняет

Конструктор используется для создания обьектов (экземпляров) класса, т.е. он их конструирует. У обьекта класса могут быть свои поля (проще говоря свойства). Например, если этот обьект машина (car), то у него будут такие поля, как марка, цвет и страна-производитель (brand, color и manufactureСountry соответственно). Для создании этого обьекта, при вызове конструктора можно указать явные параметры, которые заранее зададут марку, цвет и страну производителя.

Как обьявляется конструктор

Я приведу простой пример с помощью языка Java (отличия между другими языками не существенные, суть одна и та же). Пусть у нас есть класс Car, в котором есть закрытые поля (private) с названиями brand, color и manufactureCountry, т.е. это поля, которые будет иметь каждый обьект данного класса. Конструктор будет иметь 3 параметра типа String (aBrand, aColor и aManufactureCountry).

public class Car
{
    // Обьявляем поля экземпляров класса
    private String brand = "";
    private String color = "";
    private String manufactureCountry = "";

    // Обьявляем конструктор класса
    public Car(String aBrand, String aColor, String aManufactureCountry)
    // В скобочках - это явные параметры
    {
          brand = aBrand;
          color = aColor;
          manufactureCountry = aManufactureCountry;
    }
}

Теперь создадим объект car в теле метода main который будет называться Mercedes, черного цвета и страна производитель — Германия. Вызов конструктора происходит при помощи выражения new ClassName(и тут вписываете параметры через запятую (если они вообще имеются)).

public class Car
{
    // Объявляем поля экземпляров класса
    private String brand = "";
    private String color = "";
    private String manufactureCountry = "";

    // Объявляем конструктор класса
    public Car(String aBrand, String aColor, String aManufactureCountry)
    // В скобочках - это явные параметры
    {
          brand = aBrand;
          color = aColor;
          manufactureCountry = aManufactureCountry;
    }

    public static void main(String[] args)
    {
          var car = new Car("Mercedes", "Black", "Germany");
          // Мы создали объект car класса Car c полями brand = "Mercedes", color = "Black" и manufactureCountry = "Germany"
    }
}

Надеюсь, что я смог доступно объяснить, что это такое.

P.S. это мой первый пост, поэтому не самое простое объяснение, но буду стараться.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.