JavaRush
AI Academy
new
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Что не так? 22-ая строка
София
11 уровень
  • 06.01.2020
  • 459просмотров
  • 7комментариев

Что не так? 22-ая строка

Вопрос по задаче Нужно добавить в программу новую функциональность
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 dedName = reader.readLine(); Cat catKeddy = new Cat(dedName); String babkaName = reader.readLine(); Cat catBabka = new Cat(babkaName); String fatherName = reader.readLine(); Cat catFather = new Cat(fatherName, catKeddy); String motherName = reader.readLine(); Cat catMother = new Cat(motherName, catBabka); String sonName = reader.readLine(); Cat catSon = new Cat(sonName, catMother, catFather); String daughterName = reader.readLine(); Cat catDaughter = new Cat(daughterName, catMother, catFather); System.out.println(catKeddy); System.out.println(catBabka); 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 parentM; private Cat parentF; Cat (String name){ this.name = name;} Cat (String name, String parentM){ this.name = name; this.parentM = parentM;} Cat(String name, String parentF, Cat parentM) { this.name = name; this.parentM = parentM; this.parentF = parentF; } @Override public String toString() { if (parentM == null && parentF == null) return "The cat's name is " + name + ", no mother" + ", no father"; else if (parentM == null) return "The cat's name is " + name + ", no mother" + "father is " + parentF.name; else if (parentF == null) return "The cat's name is " + name + ", no father" + "mother is " + parentM.name; else return "The cat's name is " + name + ", mother is " + parentM.name + ", father is " + parentF.name; } } }
0
Комментарии (7)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia VolkovaJava Developer в DXCMaster
6 января 2020, 14:25
А где у тебя конструктор, принимающий строку и двух котов?
0
София
Уровень 11
6 января 2020, 14:51
Ну... здесь вроде. А как это записать...?
String sonName = reader.readLine();
Cat catSon = new Cat(sonName, catMother, catFather);
0
Ksenia VolkovaJava Developer в DXCMaster
6 января 2020, 15:04
Здесь ты вызываешь конструктор. А где такой конструктор в классе Cat? Там у тебя только
Cat(String name) {
            this.name = name;
        }

        Cat(String name, Cat parent) {
            this.name = name;
            this.parentM = parentM;
this.parentF = parentF;
        }
(причем мама и папа всегда будут null, потому что никаких переменных parentM и parentF твой конструктор не получает)
0
София
Уровень 11
6 января 2020, 15:32
А сейчас при наличии конструктора что-то не то с 22-й строкой. И при том если вставить это, то пишет, что подобный конструктор уже есть. Нужно что-то обнулять?
Cat (String name, String parentF){
this.name = name;
this.parentF = parenF;}
0
Ksenia VolkovaJava Developer в DXCMaster
6 января 2020, 15:39
А сейчас у тебя конструктор, принимающий две строки, и одну из этих строк ты пытаешься присвоить переменной типа Cat. А еще хочешь добавить второй конструктор с такими же параметрами - как, интересно, Java должна понять, какой конструктор ты хочешь использовать, если у тебя их будет два одинаковых (оба принимают две строки)?
0
София
Уровень 11
6 января 2020, 15:53
И как это исправить...?...
0
Ksenia VolkovaJava Developer в DXCMaster
6 января 2020, 15:57
Подумать, какие конструкторы тут нужны. Написать их. Создать с их помощью необходимые объекты. А сначала, наверно, почитать про конструкторы еще раз (необязательно ограничиваться материалами JR). Но точно не надо пытаться решить задачу наугад.
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush