Программирование на JAVA

Навигация

Лекция 1. Что такое Java? История создания

Лекция 2. Основы объектно-ориентированного программирования

Лекция 3. Лексика языка

Лекция 4. Типы данных

Лекция 5. Имена. Пакеты

Лекция 6. Объявление классов

Лекция 7. Преобразование типов

Лекция 8. Объектная модель в Java

Лекция 9. Массивы

Лекция 10. Операторы и структура кода. Исключения

Лекция 11. Пакет java.awt

Лекция 12. Потоки выполнения. Синхронизация

Лекция 13. Пакет java.lang

Лекция 14. Пакет java.util

Лекция 15. Пакет java.io

Лекция 16. Введение в сетевые протоколы

Реклама :


Двери Торэкс от 9 000 рублей - двери торэкс. Двери ведущих производителей.
Строительные материалы в Москве - продажа бетона в калуге.

Результатом будет строка:

java.lang.String

В отличие от оператора instanceof, метод getClass() всегда возвра­щает точно тот класс, от которого был порожден объект.

equalsO

Этот метод имеет один аргумент типа Object и возвращает boolean. Как уже говорилось, equals( ) служит для сравнения объектов по значению, а не по ссылке. Сравнивается состояние объекта, у которого вызывается этот метод, с передаваемым аргументом.

Point p1=new Point(2,3); Point p2=new Point(2,3); print(p1.equals(p2)j;

Результатом будет true.

Поскольку сам Object не имеет полей, а значит, и состояния, в этом классе метод equals возвращает результат сравнения по ссылке. Однако при написании нового класса можно переопределить этот метод и описать правильный алгоритм сравнения по значению (что и сделано в большин­стве стандартных классов). Соответственно, в класс Point также необходи­мо добавить переопределенный метод сравнения:

public boolean equals(Object о) {

// Сначала необходимо убедиться, что переданный

// объект совместим с типом Point

if (о instanceof Point) {

//Типы совместимы, можно провести преобразование

Point р = (Point)o;

// Возвращаем результат сравнения координат return р.х==х && р.у==у;

}

// Если объект не совместим с Point, возвращаем false return false;

}

hashCodeO

Данный метод возвращает значение int. Цель hashCodeO -представить любой объект целым числом. Особенно эффективно это используется в хэш-таблицах (в Java есть стандартная реализация та­кого хранения данных, она будет рассмотрена позже). Конечно, нель­зя потребовать, чтобы различные объекты возвращали различные хэш-коды, но, по крайней мере, необходимо, чтобы объекты, равные по значению (метод equals() возвращает true), возвращали одинако­вые хэш-коды.

В классе Object этот метод реализован на уровне JVM. Сама вирту­альная машина генерирует число хеш-кодов, основываясь на расположе­нии объекта в памяти.

toStringf)

Этот метод позволяет получить текстовое описание любого объек­та. Создавая новый класс, данный метод можно переопределить и воз­вращать более подробное описание. Для класса Object и его наследни­ков, не переопределивших toStringO, метод возвращает следующее вы­ражение:

getClass().getName()+"@"+hashCode()

Метод getNameO класса Class уже приводился в пример, а хэш-код еШе дополнительно обрабатывается специальной функцией для пред­ставления в шестнадцатеричном формате.