Главная страница
Навигация по странице:

  • Обязательная задача для всех

  • Лабораторная работа No2. Лабораторная работа n ооп в Java опишем класс, представляющий автомобиль


    Скачать 1.08 Mb.
    НазваниеЛабораторная работа n ооп в Java опишем класс, представляющий автомобиль
    АнкорLabwork
    Дата04.02.2023
    Размер1.08 Mb.
    Формат файлаdocx
    Имя файлаЛабораторная работа No2.docx
    ТипЛабораторная работа
    #920159

    Лабораторная работа No2.ООП в Java.
    опишем класс, представляющий автомобиль:

    напишем другой класс для тестирования созданного класса (в том же проекте):

    Или, с вводом данных с клавиатуры:


    на основе созданного класса создаем классы-наследники:

    1. класс Car(легковая)

    2. и класс Truck(грузовая):











    Пример с использованием созданных классов (измененный test.java):



    Пример работы с программой:



    Мы можем использовать созданные классы не только в наследовании, но и для агрегации (когда один класс содержит в себе в качестве членов объекты других классов). Например, создадим класс Garage (Гараж), описывающий кол-во и состав машин в гараже:

    В этом примере использован объект типа ArrayList. Этот класс предназначен для работы с массивами объектов одного типа. Т.е., по сути, это другой способ представления классического массива, но с удобными методами класса ArrayList. Синтаксисобъявленияи создания объектатипа:



    В нашем примере создается массив объектов типа Auto, т.е. мы сможем в нем хранить как элементы типа Car, так и элементы типа Truck.

    Если посмотреть на цикл for, использованный в методе printGarage(), то можно увидеть, что он используется не совсем обычно:


    Этот цикл носит название «для каждого» (foreach). В качестве параметра цикла выступает переменная a типа Auto, при этом указывается, что переменная а будет каждую итерацию цикла заменяться элементом из masCar, который является представителем классаArrayList,т.е. для каждого элемента из созданного массива будет выполняться действие в теле цикла. Этот цикл удобно использовать, если мы не хотим зависеть от размеров массива (класса ArrayList).

    Напишем программу с использованием созданного гаража:

    Есть еще один интересный аспект при работе с классом ArrayList. Можно узнать класс объекта, который является текущим при обработке в цикле, для этого используется оператор instanceof–оператор сравнения на принадлежность к определенному классу или типу, т.е. можно написать


    Задачи:


    1. Обязательная задача для всех:

    Добавить к гаражу возможность удаления из него машины, а к классу Auto добавить поле с гос. номером.

    1. По вариантам(создать классы, в них предусмотреть различные члены классов и методы для работы):

    1.Базовый класс –учащийся. Производные –школьник и студент. Создать класс Конференция, который может содержать оба вида учащихся. Предусмотреть метод подсчета участников конференции отдельно по школьникам и по студентам(использовать оператор instanceof).

    2.Базовый класс –работник. Производные –работник на почасовой оплате и на окладе. Создать класс Предприятие, который может содержать оба вида работников. Предусмотреть метод подсчета работников отдельно на почасовой оплате и на окладе (использовать операторinstanceof).

    3.Базовый класс –компьютер. Производные –ноутбук и смартфон. Создать класс РемонтСервис, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно ремонтируемых ноутбуков и смартфонов (использовать оператор instanceof).

    4.Базовый класс –печатные издания. Производные –книги и журналы. Создать класс КнижныйМагазин, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно книг и журналов (использовать оператор instanceof).

    5.Базовый класс –помещения. Производные –квартира и офис. Создать класс Дом, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно квартир и офисов (использовать оператор instanceof).

    6.Базовый класс –файл. Производные –звуковой файл и видео-файл. Создать класс Каталог, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно звуковых и видео-файлов (использовать оператор instanceof).

    7.Базовый класс –летательный аппарат. Производные –самолет и вертолет. Создать класс Авиакомпания, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно самолетов и вертолетов (использовать оператор instanceof).

    8.Базовый класс –соревнование. Производные –командные соревнования и личные. Создать класс Чемпионат, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно командных соревнований и личных (использовать оператор instanceof).

    9.Базовый класс –мебель. Производные –диван и шкаф. Создать класс Комната, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно диванов и шкафов (использовать оператор instanceof).

    10.Базовый класс –оружие. Производные –огнестрельное ихолодное. Создать классОружейнаяПалата, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно огнестрельного и холодного оружия (использовать оператор instanceof).

    11.Базовый класс –оргтехника. Производные –принтер исканер. Создать классОфис, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно принтеров и сканеров (использовать оператор instanceof).

    12.Базовый класс –СМИ. Производные –телеканал игазета. Создать классХолдинг, который может содержать оба вида объектов. Предусмотреть метод подсчета отдельно телеканалов и газет (использовать оператор instanceof).


    написать администратору сайта