Класи та об’єкти/Пакети/Модифікатори доступу та інкапсуляція
Курси Java класи та об’єкти/пакети/модифікатори доступу та інкапсуляція
В Java класи, об’єкти, пакети та модифікатори доступу є основоположними концепціями об’єктно-орієнтованого програмування (ООП). Розглянемо кожну з цих тем детальніше:
1. Класи та об’єкти
- Клас — це шаблон або структура, яка визначає властивості (поля) та поведінку (методи) об’єктів. Класи є основою ООП у Java.
- Об’єкт — це конкретний екземпляр класу. Кожен об’єкт має свій стан (значення полів) і методи (поведінка).Приклад класу:
public class Car {
String model;
int year;
void start() {
System.out.println(“Автомобіль запущено”);
}
}
Створення об’єкта класу:
Car myCar = new Car();
myCar.model = “Toyota”;
myCar.year = 2020;
myCar.start();
2. Пакети
Пакет в Java — це спосіб організації класів та інтерфейсів. Пакети дозволяють уникнути конфліктів імен між класами та структурувати код для зручності.
Створення пакету:
package mypackage;
public class MyClass {
// код класу
}
Пакети використовуються для організації проекту та можуть бути імпортовані в інші частини коду:
import mypackage.MyClass;
3. Модифікатори доступу
Модифікатори доступу визначають рівень видимості класів, методів та полів. Вони контролюють, як об’єкти та класи взаємодіють між собою. Основні модифікатори:
- public: Доступ до елементу дозволено з будь-якого місця програми.
- private: Доступ до елементу дозволено лише в межах самого класу.
- protected: Доступ дозволений у межах одного пакету або у класах-нащадках.
- (без модифікатора): Видимість обмежена поточним пакетом (package-private).
Приклад:
public class Person {
public String name; // доступний всюди
private int age; // доступний лише в цьому класі
protected String address; // доступний в межах пакету та у підкласах
private void printAge() {
System.out.println(age);
}
}
4. Інкапсуляція
Інкапсуляція — це механізм приховування даних класу, щоб захистити їх від некоректного використання. Це досягається через приватні поля та публічні методи доступу (геттери і сеттери).
Приклад інкапсуляції:
public class Employee {
private String name;
приватна інт зарплата;
// Геттер для отримання значення поля
public String getName() {
return name;
}
// Сеттер для встановлення значення поля
public void setName(String name) {
this.name = name;
}
public int getSalary() {
повернення зарплати;
}
public void setSalary(int salary) {
this.salary = salary;
}
}
Використання інкапсуляції забезпечує контроль над тим, як поля класу змінюються, а також дозволяє створювати інтерфейси, через які інші частини програми можуть безпечно взаємодіяти з класами.
Для більш детальної інформації можна звернутися до офіційної документації Java або ресурсів, що пояснюють ООП у контексті Java.