Java, Клас Object
Хоча ми можемо створити звичайний клас, який не є спадкоємцем, але фактично всі класи успадковують від класу Object Object. Всі інші класи, навіть ті, які ми додаємо до свого проекту, є неявно похідними від класу Object. Тому всі типи та класи можуть реалізувати ті методи, які визначені у класі Object. Розглянемо ці способи.
Метод toString служить для отримання подання даного об'єкта у вигляді рядка. При спробі вивести рядкове уявлення якогось об'єкта, як правило, буде виводитися повне ім'я класу. Наприклад:
Отримане мною значення (у разі Person@7960847b ) навряд чи може бути хорошим рядковим описом об'єкта. Тому метод toString() нерідко перевизначають. Наприклад:
Метод hashCode
Метод hashCode дозволяє вказати певне числове значення, яке буде відповідати даному об'єкту або його хеш-код. За цим числом, наприклад, можна порівнювати об'єкти.
Наприклад, виведемо уявлення вищевизначеного об'єкта:
Але ми можемо задати свій алгоритм визначення хеш-коду об'єкта:
Отримання типу об'єкта та метод getClass
Метод getClass дозволяє отримати тип даного об'єкта:
Метод equals
Метод equals порівнює два об'єкти на рівність:
Метод equals приймає як параметр об'єкт будь-якого типу, який ми потім наводимо до поточного, якщо вони є об'єктами одного класу.
Оператор instanceof дозволяє з'ясувати, чи передається як параметр об'єкт об'єктом певного класу, у разі класу Person. Оскільки об'єкти належать до різних класів, їх порівняння немає сенсу, і повертається значення false.
Потім порівнюємо за іменами. Якщо вони збігаються, повертаємо true,що говоритиме, що об'єкти рівні.