Лабораторная работа No2. Лабораторная работа n ооп в Java опишем класс, представляющий автомобиль
Скачать 1.08 Mb.
|
Лабораторная работа No2.ООП в Java. опишем класс, представляющий автомобиль: напишем другой класс для тестирования созданного класса (в том же проекте): Или, с вводом данных с клавиатуры: на основе созданного класса создаем классы-наследники: класс Car(легковая) и класс Truck(грузовая): Пример с использованием созданных классов (измененный test.java): Пример работы с программой: Мы можем использовать созданные классы не только в наследовании, но и для агрегации (когда один класс содержит в себе в качестве членов объекты других классов). Например, создадим класс Garage (Гараж), описывающий кол-во и состав машин в гараже: В этом примере использован объект типа ArrayList. Этот класс предназначен для работы с массивами объектов одного типа. Т.е., по сути, это другой способ представления классического массива, но с удобными методами класса ArrayList. Синтаксисобъявленияи создания объектатипа: В нашем примере создается массив объектов типа Auto, т.е. мы сможем в нем хранить как элементы типа Car, так и элементы типа Truck. Если посмотреть на цикл for, использованный в методе printGarage(), то можно увидеть, что он используется не совсем обычно: Этот цикл носит название «для каждого» (foreach). В качестве параметра цикла выступает переменная a типа Auto, при этом указывается, что переменная а будет каждую итерацию цикла заменяться элементом из masCar, который является представителем классаArrayList,т.е. для каждого элемента из созданного массива будет выполняться действие в теле цикла. Этот цикл удобно использовать, если мы не хотим зависеть от размеров массива (класса ArrayList). Напишем программу с использованием созданного гаража: Есть еще один интересный аспект при работе с классом ArrayList. Можно узнать класс объекта, который является текущим при обработке в цикле, для этого используется оператор instanceof–оператор сравнения на принадлежность к определенному классу или типу, т.е. можно написать Задачи: Обязательная задача для всех: Добавить к гаражу возможность удаления из него машины, а к классу Auto добавить поле с гос. номером. По вариантам(создать классы, в них предусмотреть различные члены классов и методы для работы): 1.Базовый класс –учащийся. Производные –школьник и студент. Создать класс Конференция, который может содержать оба вида учащихся. Предусмотреть метод подсчета участников конференции отдельно по школьникам и по студентам(использовать оператор instanceof). 2.Базовый класс –работник. Производные –работник на почасовой оплате и на окладе. Создать класс Предприятие, который может содержать оба вида работников. Предусмотреть метод подсчета работников отдельно на почасовой оплате и на окладе (использовать операторinstanceof). 3.Базовый класс –компьютер. Производные –ноутбук и смартфон. Создать класс РемонтСервис, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно ремонтируемых ноутбуков и смартфонов (использовать оператор instanceof). 4.Базовый класс –печатные издания. Производные –книги и журналы. Создать класс КнижныйМагазин, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно книг и журналов (использовать оператор instanceof). 5.Базовый класс –помещения. Производные –квартира и офис. Создать класс Дом, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно квартир и офисов (использовать оператор instanceof). 6.Базовый класс –файл. Производные –звуковой файл и видео-файл. Создать класс Каталог, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно звуковых и видео-файлов (использовать оператор instanceof). 7.Базовый класс –летательный аппарат. Производные –самолет и вертолет. Создать класс Авиакомпания, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно самолетов и вертолетов (использовать оператор instanceof). 8.Базовый класс –соревнование. Производные –командные соревнования и личные. Создать класс Чемпионат, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно командных соревнований и личных (использовать оператор instanceof). 9.Базовый класс –мебель. Производные –диван и шкаф. Создать класс Комната, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно диванов и шкафов (использовать оператор instanceof). 10.Базовый класс –оружие. Производные –огнестрельное ихолодное. Создать классОружейнаяПалата, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно огнестрельного и холодного оружия (использовать оператор instanceof). 11.Базовый класс –оргтехника. Производные –принтер исканер. Создать классОфис, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно принтеров и сканеров (использовать оператор instanceof). 12.Базовый класс –СМИ. Производные –телеканал игазета. Создать классХолдинг, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно телеканалов и газет (использовать оператор instanceof). |