Перерахування enum. Клас Object та його методи
У Java перерахування (enum) і клас Object є важливими частинами мови, що надають основні можливості для роботи з фіксованими наборами констант та універсальними методами для всіх класів. Уроки Java – Перерахування enum. Клас Object та його методи
1. Перерахування (enum)
Перерахування (enum) — це спеціальний тип класу, який обмежує змінну фіксованим набором значень. Кожен елемент в enum є екземпляром цього типу. Перерахування широко використовуються для роботи з обмеженими списками можливих значень, такими як дні тижня, сезони року або стани об’єкта.
Основні моменти про enum:
- Оголошення enum:
Перерахування оголошуються за допомогою ключового слова enum. Кожен елемент всередині перерахування є константою.
Приклад:
public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
- Використання enum:
Ви можете використовувати значення перерахування для створення змінних, перевірки їх значень або як частину умовних операторів.
Приклад:
public class Main { public static void main(String[] args) { Day day = Day.MONDAY; switch (day) { case MONDAY: System.out.println(“It’s Monday!”); break; case FRIDAY: System.out.println(“It’s Friday!”); break; default: System.out.println(“It’s another day.”); break; } } }
Методи в enum:
Перерахування можуть мати конструктори, методи та поля, що робить їх схожими на класи.
Приклад з полями та методами:
public enum Day { MONDAY(“Start of the week”), FRIDAY(“End of the work week”), SUNDAY(“Weekend”); private String description; Day(String description) { this.description = description; } public String getDescription() { return description; } } public class Main { public static void main(String[] args) { Day day = Day.FRIDAY; System.out.println(day.getDescription()); // Виведе “End of the work week” } }
Методи перерахування (enum):
- values(): Повертає масив усіх значень перерахування.
- valueOf(String name): Повертає значення перерахування за його іменем.
- name(): Повертає ім’я константи.
- ordinal(): Повертає порядковий номер константи (індекс).
Приклад:
for (Day day : Day.values()) { System.out.println(day.name() + ” – ” + day.ordinal()); }
2. Клас Object та його методи
Клас Object є кореневим класом для всіх класів у Java. Кожен клас автоматично є нащадком класу Object, навіть якщо це явно не вказано. Клас Object містить набір методів, які є загальними для всіх об’єктів у Java.
Основні методи класу Object:
- toString():
Повертає рядкове представлення об’єкта.
За замовчуванням цей метод повертає рядок, який містить ім’я класу і хеш-код об’єкта.
Зазвичай перевизначається для того, щоб надати більш змістовну інформацію про об’єкт.
Приклад:
public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return “Person{name='” + name + “‘, age=” + age + “}”; } } public class Main { public static void main(String[] args) { Person person = new Person(“John”, 30); System.out.println(person); // Виведе “Person{name=’John’, age=30}” } }
- equals(Object obj):
Порівнює два об’єкти на рівність.
За замовчуванням цей метод перевіряє, чи є посилання на об’єкт тим самим (посилання на одну область пам’яті).
Зазвичай перевизначається для порівняння змісту об’єктів (наприклад, порівняння полів).
Приклад перевизначення:
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null || getClass() != obj.getClass()) return false; Person person = (Person) obj; return age == person.age && name.equals(person.name); }
- hashCode():
Повертає числове значення, яке представляє об’єкт у хеш-таблицях (наприклад, в HashMap).
Перевизначається разом із equals(), оскільки два рівних об’єкти повинні мати однаковий хеш-код.
Приклад перевизначення:
@Override public int hashCode() { return Objects.hash(name, age); }
- getClass():
Повертає об’єкт типу Class, який представляє клас об’єкта.
Приклад:
public class Main { public static void main(String[] args) { Person person = new Person(“John”, 30); System.out.println(person.getClass().getName()); // Виведе “Person” } }
- clone():
Створює та повертає копію об’єкта.
Для використання цього методу клас повинен реалізовувати інтерфейс Cloneable, а метод clone() необхідно перевизначити.
- finalize():
Метод, який викликається перед знищенням об’єкта під час очищення сміття (garbage collection). Цей метод використовується рідко, оскільки механізм очищення сміття в Java зазвичай працює автоматично.
Від Java 9 цей метод є застарілим.
Висновок (Уроки Java – Перерахування enum. Клас Object та його методи )
- Перерахування (enum) — це спеціальний тип класу для представлення фіксованих наборів значень.
- Перерахування надають зручні методи для обробки та роботи з такими значеннями, а також можуть містити власні методи та поля.
- Клас Object — це базовий клас для всіх класів у Java, який надає основні методи для порівняння об’єктів, отримання їх хеш-коду, перетворення в рядок і багато іншого. Важливі методи, такі як equals(), hashCode(), toString(), часто перевизначаються для налаштування поведінки об’єктів.