Здравствуйте.
Вроде разобрался, но до конца не уверен, правильно ли я понимаю. Задачу честно решил, получил за нее "зачет", условно говоря.
Вот текст:
public class Solution {
public static void main(String[] args) {
//напишите тут ваш код
Woman Helga = new Woman();
Cat Mary = new Cat();
Mary.owner = Helga;
Dog Bolder = new Dog();
Bolder.owner = Helga;
Fish Selda = new Fish();
Selda.owner = Helga;
}
public static class Cat {
public Woman owner;
}
public static class Dog {
public Woman owner;
}
public static class Fish {
public Woman owner;
}
public static class Woman {
}
}
Верно ли я понимаю следующее:
1) при решении этой задачи создается три класса, каждый экземпляр каждого из которых - содержит переменную ссылочного типа, которая хранит не сами данные, но ссылку на объект класса Woman??
2) owner - в контексте каждого класса - это имя переменной ссылочного типа?
3) Т.о., если я пишу, например:
Cat Mary = new Cat();
Mary.owner = Helga; // - я вначале создаю новый объект класса Cat - как экземпляр этого самого класса Cat - а затем ссылочной переменной owner - или переменной-ссылке - присваиваю значение Helga, которое и будет объектом класса Woman? Верно ли это понято??
Заранее спасибо за здравые ответы и конструктивную критику.
Sergey Zharkov
3 уровень
Переменные ссылочного типа - оно ли это??? Или нет??
Обсуждается
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Стас ПасинковSoftware Developer в ZipyMaster
24 апреля 2020, 00:21полезный
да.
объекты занимают место в памяти (иногда много, иногда очень много)
поэтому вместо того, чтобы каждый раз создавать копию объекта (например, для каждого животного создавать копию одного и того же объекта владельца) - переменные ссылочного типа содержат в себе не сами объекты, а ссылки на место в памяти, где находится этот объект. таким образом получается у всех животных один и тот же владелец.
еще это удобно тем, что если мы где-то поменяли что-то внутри самого владельца - например, состарили его на 1 год - то животные сразу же об этом тоже узнали, так как они хранят внутри себя не копии на объект, а просто ссылку на оригинал
+2
JustinianJudge в Mega City OneMaster
23 апреля 2020, 23:01полезный
Почитай комментарии в https://javarush.com/help/38054#discussion
Если еще будут вопросы, то пиши.
п.с. имена классов в джаве пишутся с большой буквы.
имена методов, имен переменных с маленькой, поэтому должно быть вот так:
+2
Sergey Zharkov
30 апреля 2020, 12:16
Здрассте. Спасибо за ответ, но - критично ли, чтоб имена классов были именно с большой буквы, а имена переменных а также методов - с маленькой?? СОгласен, такой текст проги лучше читаем, но ведь принцип этот - не догма??
0
JustinianJudge в Mega City OneMaster
30 апреля 2020, 13:23
Джава это язык программирования.
Это прежде всего язык.
Насколько критично чтобы имена городов в русском языке писались с большой буквы? Является ли это догмой? Не знаю, не хочу заниматься детерминированием понятий.
Это просто правило языка.
На уровне обучения на первых 1- 10 уровнях, на подобные вещи можешь не сильно тратить много времени, концентрируйся на суть, на решениях задач.
Что можешь то применяй.
Программист не напишет имя класса с маленькой буквы, а метод с большой.
Когда ты к этому придешь сейчас или на 40-м уровне это твой личный выбор, и как сложится :)
0
Sergey Zharkov
30 апреля 2020, 14:17
Хорошо, учту. Спасибо за совет.
0