Во всех случаях есть метод thislves? - PullRequest
0 голосов
/ 05 сентября 2018

из любопытства, Методы также имеют несколько областей памяти с одинаковыми кодами?

Я имею в виду, что функции только одна и имеют одну область в памяти.

но в объектно-ориентированном программировании есть класс и экземпляр понятий

и функция экземпляров - это метод, как я знаю.

Функции только одни, но методов нет (много примеров .. тогда будет много методов ..)

Я думаю, что это только одна область кода в памяти для методов и несколько областей памяти для свойств. но они используют что-то особенное, например стековый фрейм, а затем могут ссылаться на объекты экземпляров и т. д.

это правильно на C ++, Java, Python, Javascript?

1 Ответ

0 голосов
/ 06 сентября 2018

Существует одна реализация каждого метода; один экземпляр.

Во время выполнения ссылка на экземпляр объекта передается методу либо неявно (в таких языках, как Java), либо явно (например, аргумент self в Python).

В динамических языках методы, доступные для объекта, являются атрибутами класса или объекта, поэтому возможно, чтобы разные объекты одного и того же класса имели разные реализации одного и того же имени метода.

...