Здравствуйте, есть вопрос по лекции.
https://javarush.com/quests/lectures/questsyntaxpro.level11.lecture02
Перечитываю лекцию, и не могу найти нигде момент, который точно говорит: Если создано три объекта класса Person, сколько создастся экземпляров нестатического метода int getValue() ?
Смотря на картинку ниже, создается впечатление, что каждый раз при создании объекта, в память создается вместе с нестатическими переменными, нестатический метод.
https://cdn.javarush.com/images/article/4c05a9df-279e-4dc7-9fa3-f219fd421b93/1080.webp
Помню из теории С++, там фигурировал такой момент.
"Нестатические методы классов, создаются в единичном экземпляре. Оператор this, в данной ситуации, позволяет такому методу, созданному в единственном экземпляре, определять, с каким именно объектом он работает, таким образом, методы создаются в единственном экземпляре."
В Java так же, или все же реально для каждого объекта создается свой метод?
Ruby
19 уровень
Сколько раз в памяти создается нестатический метод void Foo(), при создании трех объектов Класса Goo?
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Java Developer
9 февраля, 15:55
В Java так же работает. Прямой цитаты утверждающей это я не нашёл, но вот тут в пункте 8.4.3.2 говорится что-то похожее.
Да и с точки зрения здравого смысла это очевидное решение. Объект призван хранить в себе состояние, оно может отличаться, а методы должны вести себя одинаково для любых экземпляров этого класса.
Можешь поиграться с дизассемблером если интересно.
+1