Перерахування 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(), часто перевизначаються для налаштування поведінки об’єктів.

Уроки Java – Перерахування enum. Клас Object та його методи. Вони що надають можливості роботи з методами для всіх класів.