Size: a a a

2020 December 08

BP

Bogdan Panchenko in KotlinLangRu
Это точно тот чат для постинга весёлых картиночек ?
источник

Д

Денис in KotlinLangRu
Добрый вечер. Возможно ли переопределить метод на уже созданном объекте? Если да, то подскажите, пожалуйста, как
источник

G

German in KotlinLangRu
Денис
Добрый вечер. Возможно ли переопределить метод на уже созданном объекте? Если да, то подскажите, пожалуйста, как
в понимании ООП - нет, это бессмылица. Но в котлин функции - это объекты, так что можно в классе объявить свойство-функцию, описав сигнатуру, а в рантайме подсовывать нужное тело
источник

BP

Bogdan Panchenko in KotlinLangRu
German
в понимании ООП - нет, это бессмылица. Но в котлин функции - это объекты, так что можно в классе объявить свойство-функцию, описав сигнатуру, а в рантайме подсовывать нужное тело
Почему в плане ооп это бессмылица ?
источник

G

German in KotlinLangRu
Bogdan Panchenko
Почему в плане ооп это бессмылица ?
Метод - это часть класса. и для меня слух режет "переопределить метод объекта". Я в курсе что это возможно рефлексией и кучей других способов, но  для меня, выросшего на классической джаве, такая формулировка - бессмыслица.
источник

BP

Bogdan Panchenko in KotlinLangRu
German
Метод - это часть класса. и для меня слух режет "переопределить метод объекта". Я в курсе что это возможно рефлексией и кучей других способов, но  для меня, выросшего на классической джаве, такая формулировка - бессмыслица.
Это вы уже ушли в реализацию jvm. Изначально тезис был про ООП, где в концепции ооп нельзя "переопределять" "метод" (не спроста они а кавычках) ?
источник

G

German in KotlinLangRu
переопределить метод у объекта? ООП такое определяет?
источник

BP

Bogdan Panchenko in KotlinLangRu
German
переопределить метод у объекта? ООП такое определяет?
Ну начнем что в ооп нет понятие "метод". И понятие "переопределять" тоже может быть не совсем точным (особенно в прототипированном ооп).

Скажем так, чем метод кардинально отличается от "переменной" (свойства) в классе ? Именно с точки главной концепции ооп
источник

G

German in KotlinLangRu
метод - поведение, свойство - данные. у свойства в частном порядке тоже есть "поведение" гетеры и сеттеры. может в рантайме это и смазано, но в описательном процессе - разницу я вижу.
источник

G

German in KotlinLangRu
и в ооп понятие "метод" все же существует
источник

IM

Igor Mikhailov in KotlinLangRu
Я как то делал такую штуку, но не уверен то что это именно то что надо автору вопроса (ну в целом в правильности такого подхода не уверен)
class Player{
   var callbackFrameReady: (BufferedImage)->Unit = {}
}
PS сейчас перешёл на списки слушателей
источник

BP

Bogdan Panchenko in KotlinLangRu
German
и в ооп понятие "метод" все же существует
Давайте ссылки. А ооп главная концепция - все объекты, и "свойства" и "методы", и классы.

Объектам свойственно меняется (поведения).
источник

BP

Bogdan Panchenko in KotlinLangRu
Igor Mikhailov
Я как то делал такую штуку, но не уверен то что это именно то что надо автору вопроса (ну в целом в правильности такого подхода не уверен)
class Player{
   var callbackFrameReady: (BufferedImage)->Unit = {}
}
PS сейчас перешёл на списки слушателей
источник

BP

Bogdan Panchenko in KotlinLangRu
А  прокси нельзя заиспользовать ? Общий интерфейс есть ?
источник

G

German in KotlinLangRu
Bogdan Panchenko
Давайте ссылки. А ооп главная концепция - все объекты, и "свойства" и "методы", и классы.

Объектам свойственно меняется (поведения).
Да первая же ссылка, правда на вики, но сразу же определяет «метод» в контексте ооп. Я слышал за «все есть объект», но каноничность данного высказывания у меня под сомнением
источник

BP

Bogdan Panchenko in KotlinLangRu
German
Да первая же ссылка, правда на вики, но сразу же определяет «метод» в контексте ооп. Я слышал за «все есть объект», но каноничность данного высказывания у меня под сомнением
Тогда какая главная идиома ооп ? Все функция ? Или все паттерн ?

На счёт Вики - где написано ?
Также "каждый из которых является экземпляром определённого класса, " не во всех ооп есть классы (правда такие яп по факту в научной среде), тот же js их изначально не имел
источник

BP

Bogdan Panchenko in KotlinLangRu
на Английской версии есть, но там есть и другое
источник

G

German in KotlinLangRu
Bogdan Panchenko
Тогда какая главная идиома ооп ? Все функция ? Или все паттерн ?

На счёт Вики - где написано ?
Также "каждый из которых является экземпляром определённого класса, " не во всех ооп есть классы (правда такие яп по факту в научной среде), тот же js их изначально не имел
источник

BP

Bogdan Panchenko in KotlinLangRu
ну такое себе. Лучше на анг версию сослались. и вот еще https://en.m.wikipedia.org/wiki/Method_(computer_programming).

Тут читаем Dynamic dispatch/message passing, где сказано +- следующие: "что объект выбирает процедуру/медод для исполнения" (It is the responsibility of the object, not any external code, to select the procedural code to execute in response to a method call), это вполне вписывается в "переопределения" метода на лету, в статических яп обычно используют прокси-объекты

Также стоит взглянуть на "Class-based vs prototype-based"
источник

G

German in KotlinLangRu
Bogdan Panchenko
Тогда какая главная идиома ооп ? Все функция ? Или все паттерн ?

На счёт Вики - где написано ?
Также "каждый из которых является экземпляром определённого класса, " не во всех ооп есть классы (правда такие яп по факту в научной среде), тот же js их изначально не имел
Насчет того что js их изначально не имел. Откуда инфа? Я не большой поклонник данного языка, но насколько я помню он изначально разрабатывался под большим влиянием java, отсюда и схожий синтаксис, по крайней мере в первых версиях. Соответственно и ооп со всякими классами там было
источник