Великолепная восьмерка

  • 1
  • Недоступна
То, с какой лёгкостью коты захватили интернет, показывает, что мы знаем об этих миловидных комках шерсти далеко не всё. Очевидно только, что людям без них хуже, чем с ними. Давайте сделаем мир лучше: создадим 10 переменных типа Cat и ещё 8 объектов типа Cat. Кстати, никому котёнок не нужен?
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (120)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Kuzmenkov
Уровень 3, Санкт-Петербург, Россия
6 марта, 12:17
Сделал для Вас подробный разбор этой задачи :
Cat cat1 = new Cat();   /* Буквально: "Мы объявили переменную  cat1  типа  Cat
и создали внутри переменной — безымянный объект типа  Cat .

Только на практике — переменная  cat1  содержит в себе не объект, а ссылку
на него. И чтобы обратиться к объекту — мы обращаемся к переменной  cat1

Cat  — это тип к которому относятся объекты и переменные
Автор кода мог назвать этот тип не Cat, а как угодно, например Dog
буквально, здесь тип  Cat  означает — "семейство кошачьих"
Резюме: До знака равно,  Cat  означает тип переменной
После знака равно — этот же самый  Cat  означает тип созданного объекта
*/
Cat cat2 = new Cat();  // cat2 ( cat3,  cat4 )  — это название переменной
Cat cat3 = new Cat();  // new Cat() — команда: создать (котейку) новый объект типа Cat
Cat cat4 = new Cat();  // для примера этому коту (объекту в переменной cat4) можно присвоить имя
    cat4.name = "Барсик";  /* Этой командой обращаемся к объекту через
его переменную. Теперь котейку зовут Барсик. 16 строка не относится к заданию,
просто пример для общего понимания темы.

Барсик — это условное имя, оно используется только для вывода на экран.
При написании кода, чтобы обратиться к объекту "Барсик" — мы по прежнему
обращаемся к переменной  cat4 , которая содержит ссылку на него
*/
Cat cat5 = new Cat();
Cat cat6 = new Cat();
Cat cat7 = new Cat();
Cat cat8 = new Cat();
Cat cat9;              // переменные  cat9 и cat10  со значением null
Cat cat10;             // null — это когда переменная не содержит ссылку на объект
/*
переменная не может содержать объект, т.к. он занимает много места.
Переменная всегда содержит только ссылку на объект, либо значение null
*/
надеюсь, так — понятно ?)))
YesOn
Уровень 5, Томск, Россия
3 августа, 13:04
Спасибо за объяснение! Как раз про cat9 и cat10 - не понял, что они - null.
Alla Morozova
Уровень 12, Рязань
9 января, 19:40
я бы сказала так, что должно быть создано 8 объектов, а суммарно должно быть объявлено 10 переменных, в том числе те, которые в создании объекта, может запутано, но я так поняла.
Rodion
Уровень 17, Германия
4 января, 21:25
8 раз первую, 2 раза вторую. В Итоге: 8 и 10.
Сергей Подлесный
Уровень 18, Санкт-Петербург
18 декабря 2020, 08:23
На мой взгляд нужно сделать описание задачи более однозначным. Например, так: "В методе main должно быть 10 переменных типа Cat, из них 8 переменных должны быть проинициализированы сразу при создании." Потому что можно создать 10 непроинициализированных переменных и еще 8 проинициализированных переменных. Мне не трудно, а это считается ошибкой.
Андрей
Уровень 16, Москва
25 декабря 2020, 09:15
тоже 18 делал)
Георгий
Уровень 2
9 ноября 2020, 10:30
Понял важную вещь - имя переменной должно быть уникальным.
Павел Инженер электроник в АК "АЛРОСА"
5 ноября 2020, 01:22
Почему так нельзя? Cat cat1, cat2, cat3, cat4, cat5, cat6, cat7, cat8 = new Cat(); Ошибка Ты проинициализировал слишком мало переменных.
Андрей
Уровень 16, Москва
25 декабря 2020, 09:16
каждый объект создается отдеально
HOMA
Уровень 2, Минск
7 октября 2020, 11:52
Кто обьяснит ,зачем в конце "public static class"???
Superneo
Уровень 7
6 ноября 2020, 02:22
За тем, что объект создается по шаблону Класса, поэтому там нужно открыть класс cat, чтоб по нему объекты клепать)
Станислав
Уровень 9, Санкт-Петербург
9 декабря 2020, 19:14
Мне кажется всех сбивает с толку порядок, как и меня: типа мы сначала клепаем объекты потом создаем класс, чтобы их наклепать
bighugemister
Уровень 13, Москва, Россия
30 июля 2020, 16:48
Не понимаю. Чем отличается переменная типа Cat от объекта типа Cat?
hidden #2322530
Уровень 41
7 сентября 2020, 13:36
в переменной типа Cat может быть как и ссылка на объект типа Cat, так и null и переменная хранит ссылку на объект
Евгений
Уровень 2, Київ, Украина
30 июля 2020, 15:52
Подскажите в сем проблема, вроде же все правильно сделано, спасибо
Ohr
Уровень 24
23 июля 2020, 05:19
Не понимаю почему Cat cat1 = new Cat(); Cat cat2 = new Cat(); Создаёт два объекта и две ссылки. Объект уже создан и в лучшем случае его должно перезаписать. Объект получается один а ссылки должно быть две. И по мне так: Cat cat1 = new Cat(); идентично Cat cat1; (Само собой с условием что объект Cat уже создан)