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

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

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

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

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

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

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