1. Есть класс (=тип для ссылочной переменой и тип для объекта). Зачем такой уникальный тип для объекта понятно = будет перенята структура и др. А для ссылочной переменной зачем (почему не сделали универсальный тип, например "url")?
2. Как узнать ссылку объекта, созданного без объявления ссылочной переменной (new Cat();). Если это возможно, то как потом эту ссылку занести в ссылочную переменную?
dell
16 уровень
1. Зачем уникальные типы ссылочным переменным? 2. Узнать ссылку объекта.
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Сергеев ВикторMaster
6 января 2019, 22:35решение
"А для ссылочной переменной зачем (почему не сделали универсальный тип, например "url")? "
что в вашем понимании ссылочная переменная?
"Как узнать ссылку объекта, созданного без объявления ссылочной переменной (new Cat();). Если это возможно, то как потом эту ссылку занести в ссылочную переменную? "
никак, если её сразу не сохранить, то обратиться к объекту уже не получится.
0
dell
6 января 2019, 22:47
Создаём 2 объекта:
dom d1 = new dom();
shkola s1 = new shkola();
Смотрим что теперь в переменных d1 и s1:
System.out.println (d1); // вывод: dom@2a139a55
System.out.println (s1); // вывод: shkola@15db9742
В моём понимании ссылочная переменная - это переменная, хранящая вот такие ссылки на объекты, и создаваемая как указано выше.
d1 и s1 хранят похожие ссылки, но типы этих переменных, по видимому, должны обязательно соответствовать классам и типам объектов (нельзя написать shkola d1 = new dom();).
0
Дмитрий СоснинExpert
6 января 2019, 22:50
Пока лучше не забивай этим голову, устройство классов будет рассмотренно сильно позже. Сосредоточься пока на синтаксисе
А уникальный класс есть. Это класс Object, но работать удобнее не с ним, а с более специализированными классами
+1
Сергеев ВикторMaster
7 января 2019, 00:38
это особенность языка - статическая типизация. Т.е. тип переменной определяется во время написания. То, что хочешь ты (класть что угодно и куда угодно) если в языках с динамической типизаций. Мне динамическая типизация не нравится. Мне нравится когда IDE может мне подсказать, что я могу делать с объектом.
0
dell
7 января 2019, 19:50
Получается команда new Cat(); полностью бесполезна (сделать с объектом ничего нельзя и он скоро удалиться)?
0
Сергеев ВикторMaster
7 января 2019, 19:57
не совсем так.
Для начала можно вызвать какой-то метод у этого объекта сразу после создания:
new Cat().meow()
так же сам объект при создании может выполнять какую-то логику.
Такие объекты можно предавать в методы (не создавая заранее), но по мне это смотрится криво.
В общем если он вам нужен 1 раз, то использовать переменную может быть и нет смысла. Если он ещё пригодится, то переменная очень нужна )
+1