Презентации и задания для практики NetCracker / Практика / 05. етодv класса Object
.docПрактическая работа №5
Задание на практическую работу
В процессе написания тестовых заданий ознакомьтесь методами класса Object.
Задание 1
Добавьте в классы помещений Flat и Office реализации метода String toString(), выводящего тип помещения, текущее количество комнат помещения и его площадь через запятую в скобках. Например, Flat (3, 55.0)
Добавьте в классы этажей DwellingFloor, OfficeFloor реализации метода String toString(). Методы выводят тип этажа, текущее количество помещений этажа и соответствующую информацию по каждому помещению, используя метод toString() помещения. Например,
DwellingFloor (3, Flat (3, 55.0), Flat (2, 48.0), Flat (1, 37.0))
Переопределите в классе HotelFloor метод String toString(). Метод выводит тип этажа, значение показателя звездности этажа, текущее количество помещений этажа и соответствующую информацию по каждому помещению. Например,
HotelFloor (5, 4, Flat (3, 55.0), Flat (2, 48.0), Flat (1, 37.0), Flat (2, 48.0))
Добавьте в классы зданий Dwelling, OfficeBuilding реализации метода String toString(). Методы выводят текущее количество этажей и соответствующую информацию о каждом помещении каждого этажа, используя toString() уровня этажа и помещения. Например,
Dwelling (2, DwellingFloor (3, Flat (...), ...), DwellingFloor (3, Flat (...), ...)
Переопределите в классе HotelBuilding метод String toString(). Метод выводит значение показателя звездности здания, текущее количество этажей и соответствующую информацию о каждом помещении каждого этажа, используя toString() уровня этажа и помещения. Например,
HotelBuilding (5, 4, HotelFloor(3, 4, Flat(...),...), HotelFloor(4, 4, Flat(...),...), HotelFloor(4, 4, Flat(...),...), HotelFloor(5, 4, Flat(...),...))
Рекомендуется использовать экземпляры класса StringBuffer.
Задание 2
Добавьте в классы помещений реализации методов boolean equals(Object object). Метод должен возвращать true только в том случае, если объект, на который передана ссылка, является помещением соответствующего типа и все соответствующие параметры помещений равны.
Добавьте в классы этажей реализации методов boolean equals(Object object). Метод должен возвращать true только в том случае, если объект, на который передана ссылка, является этажом соответствующего типа, количество помещений совпадает и сами помещения эквивалентны помещениям текущего объекта. Для экземпляров класса HotelFloor также должно проверяться совпадение количества звёзд.
Добавьте в классы зданий реализации методов boolean equals(Object object). Метод должен возвращать true только в том случае, если объект, на который передана ссылка, является зданием соответствующего типа, количество этажей совпадает и сами этажи эквивалентны помещениям текущего объекта.
Рекомендуется оптимизировать работу методов с учетом знания о внутренней структуре классов.
Задание 3
Добавьте в классы помещений реализации методов int hashCode(). Значение хеш-функции помещения можно вычислить как значение последовательного побитового исключающего ИЛИ битового представления количества комнат помещения, и, например, первых 4 байтов и вторых 4-х байтов (для типа double) битовых представлений площадей помещений этажа (следует воспользоваться вспомогательными методами классов-оберток).
Добавьте в классы этажей реализации методов int hashCode(). Значение хеш-функции этажа можно вычислить как значение побитового исключающего ИЛИ количества помещений на этаже и значений хеш-функций помещений этажа. Для этажа отеля - как значение побитового исключающего ИЛИ количества помещений на этаже, показателя звездности этажа и значений хеш-функций помещений этажа.
Добавьте в классы зданий реализации методов int hashCode(). Значение хеш-функции здания вычисляется как значение побитового исключающего ИЛИ количества этажей здания и значений хеш-функций этажей здания.
Задание 4
Добавьте в интерфейс и классы помещений метод Object clone().
Добавьте в интерфейс и классы этажей метод Object clone().
Добавьте в интерфейс и классы зданий метод Object clone().
Клонирование должно быть глубоким.