Java неявный параметр "этот" в методе? - PullRequest
5 голосов
/ 21 апреля 2011

В языке программирования Java делают вызовы методов для объекта, работают, неявно передавая ссылку на объект и действуя как статические методы?

Ответы [ 2 ]

11 голосов
/ 21 апреля 2011

Подробную информацию о том, как работает вызов метода, можно найти в спецификации Java SE 7 JVM, раздел 3.7 .Для метода экземпляра ссылка this передается в качестве первого параметра.Эта ссылка также используется для выбора того, какой метод вызывать, поскольку он может быть переопределен в подклассе, поэтому он немного сложнее, чем статический метод.

0 голосов
/ 21 апреля 2011

Короче, нет.Именно так изначально был написан C ++, когда он был просто системой макросов, но это было только потому, что ничего не существовало (в C), как классы или статические функции.

Java просто вызывает методы для объектов.Он имеет общий фрагмент кода, который является методом, поэтому в этом смысле он статически концептуально, но есть бит, который сообщает модификаторы метода, и static является одним из битов, и он не установлен для обычных методов.

...