Кл

Класи у Java

12 вправ

Про концепцію Класи

Основною обʼєктно-орієнтованою конструкцією в Java є клас, що поєднує дані (поля), які також називають змінними екземпляра, і поведінку (методи). Поля та методи класу називають його членами.

Доступом до членів можна керувати за допомогою модифікаторів доступу. Два найпоширеніші з них:

  • public: член доступний будь-якому коду (жодних обмежень).
  • private: член доступний лише коду в тому самому класі.

У Java, якщо модифікатор доступу не вказано, типовою є видимість у межах пакета. У цьому разі член видимий для всіх класів, визначених у тому самому пакеті.

Описане вище обʼєднання повʼязаних даних і поведінки разом з обмеженням доступу до членів називають інкапсуляцією, яка є одним із основних понять обʼєктно-орієнтованого програмування.

Клас можна уявити як шаблон для створення екземплярів цього класу. Щоб створити екземпляр класу (його ще називають обʼєктом), використовують ключове слово new:

class Car {
}

// Create two car instances
Car myCar = new Car();
Car yourCar = new Car();

Поля мають тип та імʼя (їх записують у camelCase) і можуть бути визначені будь-де в класі (записують у PascalCase).

class Car {
    // Accessible by anyone
    public int weight;

    // Only accessible by code in this class
    private String color;
}

Полю можна за бажанням присвоїти початкове значення. Якщо поле не вказує початкового значення, йому буде встановлено типове значення його типу. Значення полів екземпляра можна читати й оновлювати за допомогою точкової нотації.

class Car {
    // Will be set to specified value
    public int weight = 2500;

    // Will be set to default value (0)
    public int year;
}

Car newCar = new Car();
newCar.weight; // => 2500
newCar.year;   // => 0

// Update value of the field
newCar.year = 2018;

Приватні поля зазвичай оновлюються як побічний ефект виклику методу. Такі методи зазвичай не повертають жодного значення, і тоді тип поверненого значення має бути void:

class CarImporter {
    private int carsImported;

    public void importCars(int numberOfCars)
    {
        // Update private field
        carsImported = carsImported + numberOfCars;
    }
}

Зауважмо, що в класах Java не прийнято використовувати поля public. Зазвичай використовують приватні поля, доступ до яких отримують через гетери та сетери.

Усередині класу ключове слово this вказує на поточний клас. Це особливо зручно, коли параметр має те саме імʼя, що й поле:

class CarImporter {
    private int carsImported;

    public void setImportedCars(int carsImported)
    {
        // Update private field from public method
        this.carsImported = carsImported;
    }
}
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці

Вивчити концепцію Класи