Упражнение: "Семейное древо"
Выполним небольшое упражнение для закрепления прочитанного ранее материала.
Задача:
Разработать программу, которая позволяет выводить на экран информацию о человеке и его родителях (мамы, папы, бабушки, дедушки).
Информация о родственниках должна быть заранее заложена в программу.
Если родственника нет, то выводить "Информация отсутсвует".
Информация о родственниках:
- Дедушка по маминой линии: Семенов Евгений Петрович(76 лет)
- Бабушка по маминой линии: Семенова Полина Алексеевна(75 лет)
- Дедушка по папиной линии: Цветков Константин Михайлович(67 лет)
- Бабушка по маминой линии: Цветкова Анна Яковлевна(65 лет)
- Папа: Семенов Антон Евгеньевич (40 лет)
- Мама: Семенова Юлия Константиновна (38 лет)
- Сын: Семенов Андрей Антонович (14 лет)
Информация о родственниках должна выводиться текстом в таком виде:
Имя: Иван
Отчество: Иванович
Фамилия: Иванов
Возраст: 44
Мама: Иванова Анастасия
Бабушка по маминой линии: Петрова Антонина
Дедушка по маминой линии: Петров Алексей
Папа: Информация отсутствует
Решение:
Теория:
Для решения задачи, нам необходимо подумать о том, какой/какие классы нам нужны и какие свойства и методы будут у объектов.
Очевидно, что нам понадобятся такие поля как:
String name;
String secondname;
String lastname;
String age;
Кроме этих полей, нам потребуются поля для хранения информации о родителях. Тут возникает вопрос, а как?
- Какой тип данных должен быть у родителей?
- Каких родителей нам нужно сохранять? (Маму и Папу) или (Маму и Папу, Бабушек и Дедушек)
Здесь важно понимать, что в качестве поля объекта мы можем использовать не только примитивы типа int,
long и т.п., но и объекты.
Это значит, что если человек описан классом Person, то его родители так же должны быть Person. Получается:
Person mother;
Person father;
Этого будет вполне достаточно. Обратившись к полям mother или father мы сможем получить информацию о бабушках и дедушках.
Пишем код:
В файле Person.java
Таким образом у нас получился класс Person, с помощью которого, мы можем получить информацию о человеке вызвав метод printPerosnInfo()
В файле Main.java
Результат:
Имя: Андрей
Отчество: Антонович
Фамилия: Семенов
Возраст: 14
Мама: Семенова Юлия
Дедушка по маминой линии: Цветков Полина
Бабушка по маминой линии: Цветкова Анна
Папа: Семенов Антон
Дедушка по папиной линии: Семенов Евгений
Бабушка по папиной линии: Семенов Евгений
-------------
Имя: Юлия
Отчество: Константиновна
Фамилия: Семенова
Возраст: 38
Мама: Цветкова Анна
Дедушка по маминой линии: Информация отсутствует
Бабушка по маминой линии: Информация отсутствует
Папа: Цветков Константин
Дедушка по папиной линии: Информация отсутствует
Бабушка по папиной линии: Информация отсутствует
-------------
Имя: Евгений
Отчество: Петрович
Фамилия: Семенов
Возраст: 76
Мама: Информация отсутствует
Папа: Информация отсутствует
Задача успешно решена!
Как видно из примера, ничего сложно тут нет, в решении использовались if-else, конкатенация и объектно-ориентированное программирование!
Найти такие задачки для практики, вы можете в сборнике заданий.