Главная страница

Отчет ЛБ_2. Отчет ЛБ2 Пешнин Д.О. Лабораторная работа 2 абстрактные классы и интерфейсы Отчет по лабораторной работе по дисциплине


Скачать 140.36 Kb.
НазваниеЛабораторная работа 2 абстрактные классы и интерфейсы Отчет по лабораторной работе по дисциплине
АнкорОтчет ЛБ_2
Дата07.05.2022
Размер140.36 Kb.
Формат файлаdocx
Имя файлаОтчет ЛБ2 Пешнин Д.О.docx
ТипЛабораторная работа
#516404

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное

учреждение высшего образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра автоматизации обработки информации (АОИ)


ЛАБОРАТОРНАЯ РАБОТА №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 – Скриншот работы программы


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