Разработка и использование интерфейсов
Вариант 5: Разработать иерархию геометрических фигур (не менее 3-х дочерних классов) с базовым класом Shape. Базовый класс содержит одну координату для вывода фигур на экран и виртуальные методы Square() и Perimetr(), которые подсчитают площадь и периметр фигуры соответственно. Дочерние классы (например, линия, прямоугольник и окружность) должны содержать параметры фигуры, по которым их можно нарисовать и рассчитать площадь и периметр. В методе main создать массив из 8 указателей на Shape и заполнить его объектами производных классов. Вывести на экран величину S и P для всех объектов. В массив вносить только уникальные объекты. Вариант 6: см. вариант 1, модифицированный для классов: Машина (Car) с полями " Марка", " год", " объем двигателя", " тип коробки передач", " базовое значение страхового сбора" – base, и функцией расчета страхового сбора для дочерних классов " Иномарка" – InBrand - base+0, 05*year*volume, " Отечественный бренд" - HomeBrand: base+0, 03*year*volume. Каждый производный класс должен иметь конструктор с несколькими параметрами, передающий свои параметры конструктору базового класса. В методе main создать массив из 7 указателей на Car и заполнить его объектами производных классов. Вывести на экран величину страхового сбора для всех объектов. В массив вносить только уникальные объекты.
2. 5. 1. Требования к отчету 1. Привести UML-диаграмму и текст программы. Классы должны находиться в разных файлах. ЛАБОРАТОРНАЯ РАБОТА 3 Разработка и использование интерфейсов 3. 1. Общие сведения об интерфейсах Понятие интерфейса в Java. Описание интерфейса Интерфейс представляет собой " класс", в котором все поля — константы (т. е. статические — static и неизменяемые — final ), а все методы абстрактные.
При описании интерфейса вместо ключевого слова class используется ключевое слово interface, после которого указывается имя интерфейса, а затем, в фигурных скобках список полей-констант и методов. Никаких модификаторов перед объявлением полей и методов ставить не надо: все поля автоматически становятся publicstaticfinal, а методы — publicabstract. Методы не могут иметь реализации в самом интерфейсе, т. е. после закрывающей круглой скобки сразу ставится точка с запятой. Пример 3. 1. Необходимо разработать иерархию классов и интерфейсов согласно следующей UML-диаграмме: Опишем сначала интерфейс для объекта, который необходимо передвигать в разных направлениях.
public interface Movable { public void moveRight(int p); public void moveLeft(int p); public void moveUp(int p); public void moveDown(int p); }
Теперь создадим класс Figure, который будет использовать интерфейс Movable и интерфейс GeometricObject:
public class Figure implements Moveable, GeometricObject { private int x, y; // координаты размещения объекта на плоскости // constructor public Fifure(int nx, int ny) { setCoords(nx, ny); }
// Implement methods defined in the interface GeometricObject @Override public void moveRight(int p) {...... }… } Задание 3. 1: Ориентируясь на диаграмму из примера и свой вариант выполнить следующие действия:
3. 1. Написать интерфейс GeometricObject, который объявляет абстрактные методы: getParameter() and getArea(), как указано в диаграмме UML. 3. 2. Добавить интерфейс Movable из примера выше, который декларирует передвижение объекта вверх, вниз, влево вправо и меняет его координаты соответственно. 3. 3. Разработать иерархию классов, согласно варианту (класс Figure у Вас будет называться Circle, Rectangle или Triangle – согласно варианту и иметь соответствующие члены данных). В классе должны быть сведения о координатах объекта на плоскости и необходимые геометрические параметры.
Результат работы программы, (только для вашей фигуры): At (10, 20) Drawing a Rectangle: Width 5, Height 6At (110, 120) Drawing a Rectangle: Width 5, Height 6 Move Left 100. New position (110, 20)Resize 20% Drawing a Rectangle: Width 6, Height 7. 2RectanglePerimrter: 26. 4RectangleAria: 43. 2 At (15, 25) Drawing a Circle: Radius 8Move Right 10. New position (15, 35) Resize 50% Drawing a Circle: Radius 12CirclePerimrter: 75. 36CircleAria: 452, 16
Варианты:
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|