Написать программу, демонстрирующую работу с объектами двух типов: T1 и T2, для чего создать систему соответствующих классов. Каждый объект должен иметь идентификатор (в виде произвольной строки символов) и одно или несколько полей для хранения состояния объекта (один класс является потомком другого). Клиенту (функции main) должны быть доступны следующие основные операции (методы): создать объект, удалить объект, показать значение объекта и прочие дополнительные операции (зависят от варианта). Операции по созданию и удалению объектов инкапсулировать в классе Factory. Предусмотреть меню, позволяющее продемонстрировать заданные операции.
При необходимости в разрабатываемые классы добавляются дополнительные методы (например, конструктор копирования, операция присваивания и т.п.) для обеспечения надлежащего функционирования этих классов.
Варианты 1-10
В табл. 2.1 и 2.2 перечислены возможные типы объектов и возможные дополнительные операции над ними. В таблице рассматриваются только целые положительные числа.
Таблица 2.2. Перечень дополнительных операций (методов)
Операция (метод)
Описание
ShowBin()
Показать изображение двоичного значения объекта
ShowOct()
Показать изображение восьмеричного значения объекта
ShowDec()
Показать изображение десятичного значения объекта
ShowHex()
Показать изображение шестнадцатеричного значения объекта
Add(Т s)
Для объектов SymbString – конкатенация строк; для объектов прочих классов – сложение соответствующих численных значений с последующим преобразованием к типу Т
Sub(T s)
Для объектов SymbString – если s содержится как подстрока в строке класса, то результатом является строка, полученная удалением подстроки s; в противном случае возвращается значение s;
для объектов прочих классов – вычитание соответствующих численных значений с последующим преобразованием к типу Т
Примечание: Первые четыре операции могут применяться к объектам любых классов, за исключением класса SymbString.
Здесь и далее Т — любой из типов Т1 или Т2.
Таблица 2.3 содержит спецификации вариантов.
Таблица 2.3. Спецификации вариантов 1-10
Вариант
Т1
Т2
Операции (методы)
SymbString
BinString
ShowOct(), ShowDec(), ShowHex()
SymbString
BinString
Add(T)
SymbString
BinString
Sub(T)
SymbString
OctString
Add(T)
SymbString
OctString
Sub(T)
SymbString
DecString
ShowBin(), ShowOct(), ShowHexO
SymbString
DecString
Add (T)
SymbString
DecString
Sub(T)
SymbString
HexString
Add (T)
SymbString
HexString
Sub(T)
Варианты 11-20
В табл. 2.4 и 2.5 перечислены возможные типы объектов и возможные дополнительные операции над ними.
Таблица 2.4. Перечень типов объектов
Класс
Объект
Triangle
Треугольник
Quadrate
Квадрат
Rectangle
Прямоугольник
Tetragon
Четырехугольник
Pentagon
Пятиугольник
Таблица 2.5. Перечень дополнительных операций (методов)
Операция (метод)
Описание
Move()
Переместить объект на плоскости
Compare(T ob)
Сравнить объект ob со значением класса по площади
IsIntersect(T ob)
Определить факт пересечения объекта ob с фигуной класса (есть пересечение или нет)
IsInclucle(T ob)
Определить факт включения объекта ob в объект класса
Таблица 2.6 содержит спецификации вариантов.
Таблица 2.6. Спецификации вариантов 11-20
Вариант
T1
T2
Операции (методы)
Triangle
Quadrate
Move().Compare(T)
Quadrate
Pentagon
Move().IsIntersect(T)
Triangle
Rectangle
Move().Compare(T)
Triangle
Rectangle
Move().IsIntersect(T)
Rectangle
Pentagon
Move().IsInclude(T)
Triangle
Tetragon
Move().Compare(T)
Triangle
Tetragon
Move().IsIntersect(T)
Triangle
Tetragon
Move().IsInclude(T)
Triangle
Pentagon
Move().Compare(T)
Triangle
Pentagon
Move().IsIntersect(T)
Список литературы
1. Шилдт Г. Полный справочник по Java SE6, 2007.
2. Эккель Б. Философия Java, 2009.
3. Ноутон П., Шилдт Г. - Java 2. Наиболее полное руководство, 2007.