Отчет ЛБ_2. Отчет ЛБ2 Пешнин Д.О. Лабораторная работа 2 абстрактные классы и интерфейсы Отчет по лабораторной работе по дисциплине
Скачать 140.36 Kb.
|
Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР) Кафедра автоматизации обработки информации (АОИ) ЛАБОРАТОРНАЯ РАБОТА №2 «АБСТРАКТНЫЕ КЛАССЫ И ИНТЕРФЕЙСЫ» Отчет по лабораторной работе по дисциплине «Объектно-ориентированный анализ и программирование» Студент гр. з-420П8-4 Д.О. Пешнин «___»___________201_ г. Руководитель доцент каф. АОИ, канд. тех. наук Ю.В. Морозова «___»___________201_ г. Томск 2021 Цель работы Научиться применять на практике такие принципы ООП, как наследование и полиморфизм, с использованием специальных механизмов языка Java. Реализовать абстрактные классы или интерфейсы. Вариант 10 Создать интерфейс Plant (растение), содержащий методы: расчет количества воды для полива (принимаемые параметры: время года и возраст растения), вывод информации о растении. Создать два класса Tree (дерево) и Flower (цветок), реализующих этот интерфейс. Создать группу объектов классов Tree и Flower. В ходе выполнения данной лабораторной работы был создан интерфейс Plant. В нём содержались два метода: метод для расчета воды для полива void calcWater, принимающий на вход параметры времени года (String season) и возраст растения (int plantAge), а также метод для вывода информации о растении void plantInfo(). Для реализации интерфейса Plant были созданы классы Flower и Tree. Метод calcWater был переопределен и реализован таким образом, что в зависимости от времени года выводит на экран необходимое количество воды для полива растения. Метод plantInfo выводит на экран информацию о растении, содержащую название растения, рекомендуемый объём воды для его полива в зависимости от времени года, а также возраст растения. Класс Test является точкой входа и начала выполнения программы. В нём создаются экземпляры классов Tree и Flowers, а также вызываются их методы. Вывод В ходе выполнения данный лабораторной работы я научился применять на практике такие принципы ООП, как наследование и полиморфизм, с использованием специальных механизмов языка Java, а также успешно реализовал абстрактный интерфейс. Приложение А «Листинг кода программы» interface Plant { void calcWater(String season, int plantAge); void plantInfo(); } public class Flower implements Plant { public String flowerName; public String season; public int plantAge; @Override public void calcWater(String season, int plantAge) { switch (season) { case ("осень"): System.out.println("Сейчас " + season + ", поливаем " + flowerName + " водой объёмом 150 мл."); break; case ("зима"): System.out.println("Сейчас " + season + ", поливаем " + flowerName + " водой объёмом 100 мл."); break; case ("весна"): System.out.println("Сейчас " + season + ", поливаем " + flowerName + " водой объёмом 200 мл."); break; case ("лето"): System.out.println("Сейчас " + season + ", поливаем " + flowerName + " водой объёмом 250 мл."); break; default: System.out.println("Некорректное время года"); break; } } @Override public void plantInfo() { System.out.println("Этот цветок называется - " + flowerName); calcWater(season, plantAge); System.out.println("Возраст этого цветка составляет " + plantAge + " лет(год(-а)."); } } public class Tree implements Plant { public String treeName; public String season; public int plantAge; @Override public void calcWater(String season, int plantAge) { switch (season) { case ("осень"): System.out.println("Сейчас " + season + ", поливаем " + treeName + " водой объёмом 250 мл."); break; case ("зима"): System.out.println("Сейчас " + season + ", поливаем " + treeName + " водой объёмом 200 мл."); break; case ("весна"): System.out.println("Сейчас " + season + ", поливаем " + treeName + " водой объёмом 400 мл."); break; case ("лето"): System.out.println("Сейчас " + season + ", поливаем " + treeName + " водой объёмом 450 мл."); break; default: System.out.println("Некорректное время года"); break; } } @Override public void plantInfo() { System.out.println("Это дерево называется - " + treeName); calcWater(season, plantAge); System.out.println("Возраст этого дерева составляет " + plantAge + " лет(год(-а)"); } } public class Test { public static void main(String[] args) { Flower fikus = new Flower(); fikus.flowerName = "Фикус"; fikus.plantAge = 1; fikus.season = "лето"; fikus.plantInfo(); Flower arhidea = new Flower(); arhidea.flowerName = "Архидея"; arhidea.plantAge = 2; arhidea.season = "осень"; arhidea.plantInfo(); Flower gvozdika = new Flower(); gvozdika.flowerName = "Гвоздика"; gvozdika.plantAge = 3; gvozdika.season = "зима"; gvozdika.plantInfo(); Flower aloe = new Flower(); aloe.flowerName = "Алоэ"; aloe.plantAge = 4; aloe.season = "весна"; aloe.plantInfo(); Tree moneyTree = new Tree(); moneyTree.treeName = "Денежное дерево"; moneyTree.plantAge = 1; moneyTree.season = "лето"; moneyTree.plantInfo(); Tree avokado = new Tree(); avokado.treeName = "Авокадо"; avokado.plantAge = 2; avokado.season = "осень"; avokado.plantInfo(); Tree limonTree = new Tree(); limonTree.treeName = "Лимонное дерево"; limonTree.plantAge = 3; limonTree.season = "зима"; limonTree.plantInfo(); Tree coffeTree = new Tree(); coffeTree.treeName = "Кофейное дерево"; coffeTree.plantAge = 4; coffeTree.season = "весна"; coffeTree.plantInfo(); } } Приложение Б «Результат работы программы» Рис. 1 – Скриншот работы программы |