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

почему компилятор после вывода всех котов выводит "Я уличный кот null"?

Вопрос по задаче Коты
Java Core,  4 уровень,  4 лекция
Решен


Давай напишем программу, которая будет давать имена всем котикам, выпускаемым на нашей котофабрике.
Для этого нужно:

  1. Считывать строки (параметры) с консоли, пока пользователь не введет пустую строку (Enter).
  2. Для каждого параметра (имени кота):
    • создать объект cat класса Cat, который равен коту из getCatByKey(String параметр).
    • вывести на экран cat.toString().

Требования:
  • Программа должна считывать данные с клавиатуры.
  • Программа должна прекращать считывать данные после ввода пустой строки.
  • Программа должна выводить на экран описание каждого кота (cat.toString).
  • Программа должна создавать объект класса Cat для каждого введенного имени кота (строки, считанной с клавиатуры) c помощью метода getCatByKey.
package com.javarush.task.task14.task1404; import java.io.BufferedReader; import java.io.InputStreamReader; public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); while(true) { String nameCat = reader.readLine(); if(nameCat == "") { break; } else { Cat cat = new CatFactory().getCatByKey(nameCat); System.out.println(cat.toString()); } } } static class CatFactory { static Cat getCatByKey(String key) { Cat cat = null; if ("vaska".equals(key)) { cat = new MaleCat("Василий"); } else if ("murka".equals(key)) { cat = new FemaleCat("Мурочка"); } else if ("kiska".equals(key)) { cat = new FemaleCat("Кисюлька"); } else { cat = new Cat(key); } return cat; } } static class Cat { private String name; protected Cat(String name) { this.name = name; } public String getName() { return this.name; } public String toString() { return "Я уличный кот " + getName(); } } static class MaleCat extends Cat { MaleCat(String name) { super(name); } public String toString() { return "Я - солидный кошак по имени " + getName(); } } static class FemaleCat extends Cat { FemaleCat(String name) { super(name); } public String toString() { return "Я - милая кошечка по имени " + getName(); } } }
0
Комментарии (2)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
IceBerg
Уровень 41
Master
24 декабря 2019, 10:11
Это условие никогда не сработает
if(nameCat == "")
+3
Анна Ивашенцева
Уровень 22
24 декабря 2019, 10:31
да, сделала через equals
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush