JavaRush
AI Academy
new
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Выводит только бабушку и дедушку. Не могу найти ошибку в ...
Александра
15 уровень
  • 28.04.2020
  • 372просмотров
  • 2комментариев

Выводит только бабушку и дедушку. Не могу найти ошибку в коде

Вопрос по задаче Нужно добавить в программу новую функциональность
Java Syntax,  6 уровень,  11 лекция
Решен


Задача: У каждой кошки есть имя и кошка-мама.
Создать класс, который бы описывал данную ситуацию.
Создать два объекта: кошку-дочь и кошку-маму.
Вывести их на экран.

Новая задача: У каждой кошки есть имя, кот-папа и кошка-мама.
Изменить класс Cat так, чтобы он мог описать данную ситуацию.
Создать 6 объектов: дедушку (папин папа), бабушку (мамина мама), папу, маму, сына, дочь.
Вывести их всех на экран в порядке: дедушка, бабушка, папа, мама, сын, дочь.

Пример ввода:
дедушка Вася
бабушка Мурка
папа Котофей
мама Василиса
сын Мурчик
дочь Пушинка

Пример вывода:
The cat's name is дедушка Вася, no mother, no father
The cat's name is бабушка Мурка, no mother, no father
The cat's name is папа Котофей, no mother, father is дедушка Вася
The cat's name is мама Василиса, mother is бабушка Мурка, no father
The cat's name is сын Мурчик, mother is мама Василиса, father is папа Котофей
The cat's name is дочь Пушинка, mother is мама Василиса, father is папа Котофей

Требования:
  • Программа должна считывать имена 6 котов в указанном порядке.
  • Метод main должен создавать 6 объектов типа Cat.
  • Программа должна выводить 6 строк с информацией о котах.
  • Строка про дедушку (первая) должна соответствовать условию.
  • Строка про бабушку (вторая) должна соответствовать условию.
  • Строка про папу (третья) должна соответствовать условию.
  • Строка про маму (четвертая) должна соответствовать условию.
  • Строка про сына (пятая) должна соответствовать условию.
  • Строка про дочь (шестая) должна соответствовать условию.
....
package com.javarush.task.task06.task0621; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /* Родственные связи кошек */ public class Solution { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String dadName = reader.readLine(); Cat catDad = new Cat(dadName, null, null); String baName = reader.readLine(); Cat catBa = new Cat(baName, null, null); String fatherName = reader.readLine(); Cat catFather = new Cat(fatherName, null, catDad); String motherName = reader.readLine(); Cat catMother = new Cat(motherName, catBa, null); String sonName = reader.readLine(); Cat catSon = new Cat(sonName, catMother, catFather); String daugtherName = reader.readLine(); Cat catDaughter = new Cat(daugtherName, catMother, catFather); System.out.println(catDad); System.out.println(catBa); System.out.println(catFather); System.out.println(catMother); System.out.println(catSon); System.out.println(catDaughter); } public static class Cat { private String name; private Cat mother; private Cat father; Cat(String name) { this.name = name; } Cat(String name, Cat mother) { this.name = name; this.mother = mother; } Cat(String name, Cat mother, Cat father) { this.name = name; this.mother = mother; this.father = father; } //Cat(String name, Cat father) { // this.name = name; //this.father = father; //} @Override public String toString() { if (mother == null && father == null) return "The cat's name is " + name + ", no mother, no father"; else if (mother == null && father != null) return "The cat's name is " + name + ", mother is " + mother.name + ", no father"; else if (mother != null && father == null) return "The cat's name is " + name + ", no mother, father is " + father.name; else return "The cat's name is " + name + ", mother is " + mother.name + ", father is " + father.name; } } }
0
Комментарии (2)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Алексей
Уровень 33
28 апреля 2020, 21:00решение
Обратите внимание на метод toString(). Условия перепутаны. Получается, что когда мать не указана (mother == null), происходит попытка получения элемента по нулевой ссылки (mother.name) - это приводит к возникновению ошибки и программа аварийно завершается. То же самое происходит когда не указан отец (father == null). А в остальном всё отлично))
+2
Александра
Уровень 15
28 апреля 2020, 21:21
Верно) Спасибо 😊
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush