ребята, помогите пожалуйста разобраться)
почему и как работает этот код?
правильно ли я рассуждаю?
все вроде понятно - класс Circle с вложенным классом Color.
класс Color имеет переменную description,значение которой выводит и задает через свои два метода.
с конструктором тоже все ясно вроде,
конструктор по умолчанию Circle( ) - создает обьект color класса Color,
т.е при создании обьекта circle класса Circle, сразу в нем создается обьект color.
типа два объекта один в другом создаются одновременно, как только создаем "Круг"
с этим все понятно, но вопрос насчет 1-й строки, что мы делаем?
public Color color;
color здесь - обьект? зачем мы эту строку пишем, для чего она?
antlantis
41 уровень
как работает код?
Решен
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
antlantis
2 января 2021, 18:59
Ксения, это я вроде бы понял. создается обьект circle, а в нем переменная color, в которую размещается ссылка на обьект color.
и чтобв изменить переменную description через метод set, нам приходится обращаться по цепочке circle.color.set....
но почему так запутанно?) почему нельзя было в "main" сразу создать обьект "color" класса "Color", и к этому обьекту напрямую обратится через метод "set" и задать значение для переменной "description"
0
antlantis
2 января 2021, 18:45
Ксения, благодарю Вас)
стало понятнее,
то есть мы создали переменную color именно класса Color, чтобы в нее гарантировано можно было поместить значение переменной description?
0
Ksenia Volkova Java Developer в DXC Master
2 января 2021, 18:50решение
Нет, мы создали переменную color типа Color, чтобы поместить в нее объект класса Color ))
А у этого объекта уже будет поле description - типа String.
+2
antlantis
2 января 2021, 18:39
и когда мы прописываем "circle.color.setdescription" - разве мы не обращаемся к обьекту "color" который находится в обьекте "circle" ?)
0
Ksenia Volkova Java Developer в DXC Master
2 января 2021, 18:40
Так и есть - в классе Circle есть поле (переменная) color - к ней и обращаемся.
0
antlantis
2 января 2021, 18:36
Ксения, спасибо) тогда я не понимаю, почему в классе Circle создается переменная color класса Color, хотя в классе Color нет этой переменной color, а есть description
0
Ksenia Volkova Java Developer в DXC Master
2 января 2021, 18:39
Переменная color и не должна быть в классе Color. Она имеет тип Color - то есть в нее можно будет "положить" объект Color.
+1
Ksenia Volkova Java Developer в DXC Master
2 января 2021, 18:30
это объявление переменной типа Color с именем color. Объект тут не создается, это только переменная.
+1