То ли птица, то ли лампа

  • 3
  • Недоступна
Что общего у птицы и лампы? То, что и птицы, и лампы могут быть объектами своих классов. А объекты можно передавать в методы в качестве переменных. В этой задаче пишем метод, который определяет, объект какого класса ему передали, и выводит на экран одну из надписей: Кошка, Собака, Птица, Лампа.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (150)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Aleksei Reinsalu
Уровень 19, Таллинн, Эстония
30 ноября 2021, 23:27
Кирилл отжег с try catch и приведением типов :) Надо же до таких мелочей помнить как try catch работает.
Сергей Коваленко
Уровень 29, Краснодар
15 декабря 2021, 13:34
видно, что старался )
Sergey
Уровень 12, Анапа, Россия
19 ноября 2021, 20:00
Совершенно не знал что можно через "instanceof " вместо этого перебирал методы Object и наткнулся на getClass().getSimpleName(), начал делать if-ы, потом подумал - "Да ну их". после сделал через HashMap. И тут зашел посмотреть есть такие из..... кто решил как я, а тут пруд пруди вариантов))
Кирилл Козлов
Уровень 26, Москва, Россия
3 октября 2021, 10:00
Решил с помощью try catch и приведения типов
try {
          Cat cat = (Cat) o;
          System.out.println("Кошка");
      } catch (Exception e){

      }
Александр Горохов
Уровень 20, Дятьково, Россия
2 октября 2021, 08:01
Обратите внимание, что !Лампа.equals(Лама) 😁
Дмитрий System Engineer
19 мая 2021, 10:27
Отличная возможность почитать про switch-case, а также узнать о том, что у каждого класса есть предопределённые методы, например, позволяющие получить его имя в строковом формате. Вариант решения:
String objectClassName = o.getClass().getSimpleName();
switch (objectClassName) {
     case ("Dog"): System.out.println("Собака"); break;
     case ("Cat"): System.out.println("Кошка"); break;
     case ("Bird"): System.out.println("Птица"); break;
     case ("Lamp"): System.out.println("Лампа"); break;
     default: System.out.println("Такого класса нет");
}
Валерий Backend Developer в Mriya Resort&Spa
16 октября 2021, 12:34
Да, зашел в комментарии для того, чтобы посмотреть как это свитчем решить)
Александр
Уровень 36, Санкт-Петербург
22 апреля 2021, 12:10
Удалось решить на if-aх с помощью getClass)
Василий training в NIX Solutions
1 апреля 2021, 09:50
if (o instanceof Dog)
потом вывод на экран соответствующую надпись
Алексей С
Уровень 22, Россия
2 февраля 2021, 14:26
Решил сделать через switch, поскольку он менее громоздкий чем через if, к тому же тут нет математических операций, чтобы делать это через if. Спасибо человеку которые правильно написал путь к параметру объекта о, чтобы проверять его значение.
Mikhail
Уровень 22, Москва
11 января 2021, 18:32
Скажите, что не я один писал
o.getClass().toString().contains("Cat")
рукалицо
一人でsyio
Уровень 12, Варшава, Польша
27 марта 2021, 20:30
xD
Олег Данилов 1С программист в Кейсистемс
9 апреля 2021, 15:01
ахахах норм костыль)
VladimirPic Работает в Gazprom
8 ноября 2021, 10:53
Найс, в следующей задачи испробовал:D
Sergey
Уровень 12, Анапа, Россия
19 ноября 2021, 20:04
была такая идея)
Евгений Притужалов
Уровень 19, пущино, Россия
31 декабря 2020, 14:33
Это прям издевательство, в условии явно написано "Например "Лампа" для объектов типа...". Господа, слово например означает "допустим", т.е. из условия я могу вместо слова лампа вывести слово лампочка, или вообще любое другое, но валидатор такое решение не пропускает. Пишите, тогда, конкретно в каком случае какое слово должно быть выведено! Ну пипец блин...
Имя Фамилия
Уровень 19, Москва
16 января 2021, 14:11
Позвольте не согласиться - в ТЗ явно указаны формулировки, цитата: "и выводит на экран одну из надписей: Кошка, Собака, Птица, Лампа.". По крайней мере сегодня 16.01.21 это выглядит так. И меня терзают смутные сомнения, что формулировка была быть отредактирована за прошедшие пару недель (судя по другим случаям, когда видишь ругательные комменты 1-2-годовалой давности и всё равно ту же формулировку, на которую поругался уже не один человек) p.s. да, спорные формулировки к задачам тут явно не редкость, но мне кажется, что в данной задаче такая проблема отсутствует