В чем разница между концепцией ООП в Python и в си-подобных языках? Доброго времени суток.
Я знаком с питоном, но при этом я ещё новичок. Мне, как человеку, которой до этого долгое время писал на си-подобных языках (Java) не очень понятно одна вещь, которая связана с разницей между классами и Объектами.
В Python, существует класс и соответственно, отдельная сущность как объект ( или виртуальная копия класса).
Но при этом, вызывая метод, обязательно нужно передавать self, так как в Питоне метод вызывается именно в классе, а уже благодаря self, этот метод определяет с каким именно экземпляром класса он работает. class Test:
def f(self):
pass
Верно ли утверждение, что в Java все немного иначе?
Если конкретнее, то я думал, что объекты в Java имеют свои собственные методы внутри объектов. И при вызове метода он вызывается из самого объекта, а не из класса ( где этот класс определяет с чем именно ему дальше работать)

21 Авг 2019 в 07:03
194 +1
0
Ответы
1

В общем, концепция ООП в Python и в си-подобных языках, таких как Java, имеет много общих черт, но все же есть некоторые различия.

Одно из основных различий заключается в том, как обращаться к объекту при вызове методов. В Python, как вы правильно отметили, при вызове метода необходимо передавать self, так как метод вызывается в контексте конкретного объекта. Таким образом, методы в Python привязаны к объекту, а не к классу. Например, метод f() из вашего примера будет привязан к конкретному экземпляру класса Test.

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

Таким образом, основное различие заключается в том, что методы в Python привязаны к объекту, а в Java - к классу. В остальном концепция ООП остается примерно одинаковой в обоих языках.

20 Апр 2024 в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир