RuRuGlobal

Пользователь

Регистрация: 07.07.2017

Сообщения: 879

Рейтинг: 151

RuRuGlobal

Регистрация: 07.07.2017

Сообщения: 879

Рейтинг: 151

Как понимать основы объектно-ориентированного программирования, книжки есть или видео-лекции на ютубе? Нужно для питона и пандаса

Александр

Почетный пользователь

Регистрация: 10.08.2013

Сообщения: 5280

Рейтинг: 4179

Александр

Регистрация: 10.08.2013

Сообщения: 5280

Рейтинг: 4179

RuRuGlobal сказал(а):

Как понимать основы объектно-ориентированного программирования

Нажмите, чтобы раскрыть...

Вот первая ссылка в гугле, где тебе всё объяснится, очень просто и подробно

https://pro-prof.com/forums/topic/object-oriented-programming-introduction

RuRuGlobal

Пользователь

Регистрация: 07.07.2017

Сообщения: 879

Рейтинг: 151

RuRuGlobal

Регистрация: 07.07.2017

Сообщения: 879

Рейтинг: 151

Александр сказал(а):

Вот первая ссылка в гугле, где тебе всё объяснится, очень просто и подробно

https://pro-prof.com/forums/topic/object-oriented-programming-introduction

Нажмите, чтобы раскрыть...

а че так легко? всего 1 страница текста

mugiwara2

Пользователь

Регистрация: 19.06.2018

Сообщения: 2777

Рейтинг: 1355

mugiwara2

Регистрация: 19.06.2018

Сообщения: 2777

Рейтинг: 1355

img
RuRuGlobal сказал(а):

а че так легко? всего 1 страница текста

Нажмите, чтобы раскрыть...

так а че в ооп сложного то для понимания, но на практике уже другой разговор

E1ektr0

Пользователь

Регистрация: 02.09.2013

Сообщения: 617

Рейтинг: 252

E1ektr0

Регистрация: 02.09.2013

Сообщения: 617

Рейтинг: 252

img

В моём понимании надо как минимум solid освоить. Иначе можно сказать даже основ не знаешь . 

DrZoidberg

Пользователь

Регистрация: 17.01.2017

Сообщения: 1445

Рейтинг: 425

Нарушения: 70

DrZoidberg

Регистрация: 17.01.2017

Сообщения: 1445

Рейтинг: 425

Нарушения: 70

RuRuGlobal сказал(а):

а че так легко? всего 1 страница текста

Нажмите, чтобы раскрыть...

Ну с++ тоже за одно видео можно выучить. 

Ectx

Пользователь

Регистрация: 20.07.2020

Сообщения: 1509

Рейтинг: 695

Ectx

Регистрация: 20.07.2020

Сообщения: 1509

Рейтинг: 695

img
RuRuGlobal сказал(а):
Как понимать основы объектно-ориентированного программирования, книжки есть или видео-лекции на ютубе? Нужно для питона и пандаса
Нажмите, чтобы раскрыть...

Понять ООП прочитав статью нельзя, вообще сложно думать о тех вещах которые не знаешь. Просто делаешь и это приходит само с практикой.

Я допустим теорию понял уже после того законил курс джаву. Там говорилось что надо private писать(истинная инкапсуляция), что нужно наследоваться чтобы не повторять не нужны куски кода(наследование) и объясняли что нужно в некоторых местах делать классы final чтобы никто не наследовался от класса и в будущем при помощи полиморфизма не впихнул в твой метод класс который уже совсем другой.

А абстракцинизм смахивает на интерфейс. Поправьте если чё то напутал, я новичок artworks-JUwkm3SiCcPKGYZr-OUzMmQ-t500x500.jpg

Сказать что я понял азы ООП, и теперь я гуру нельзя. Но хоть что то в этом я начал понимать. 

Armagedonby_ZERGS

Пользователь

Регистрация: 23.03.2015

Сообщения: 11371

Рейтинг: 4428

Armagedonby_ZERGS

Регистрация: 23.03.2015

Сообщения: 11371

Рейтинг: 4428

RuRuGlobal сказал(а):
Как понимать основы объектно-ориентированного программирования, книжки есть или видео-лекции на ютубе? Нужно для питона и пандаса
Нажмите, чтобы раскрыть...

ООП на питоне, в голосину)

Ectx сказал(а):

Там говорилось что надо private писать(истинная инкапсуляция)

Нажмите, чтобы раскрыть...

Инкапсуляция != сокрытие.

Ectx сказал(а):

и объясняли что нужно в некоторых местах делать классы final чтобы никто не наследовался от класса и в будущем при помощи полиморфизма не впихнул в твой метод класс который уже совсем другой.

Нажмите, чтобы раскрыть...

Это вообще дичь. Лень строчить тонну текста. На больших проэктах поймешь сам потом в чем дело.

Ectx сказал(а):

А абстракцинизм смахивает на интерфейс. Поправьте если чё то напутал, я новичок

Нажмите, чтобы раскрыть...

Эээ, нет. Разные вещи абсолютно.

Интерфейс - это просто обертка. По факту - ты говоришь, этот клас умеет делать то что сказано в интерфейсе. Допустим, любой объект который умеет летать - имплементирует интерфейс Flyable, и реализует метод - fly. Но фишка в том, что летать может как боинг, так и пчела. Поэтому интерфейсам плевать на наследование.

Что бы понять всю мощь интерфейсов - разбери паттерн Стратегия. После этого паттерна осознать что такое лямбды и зачем они нужны тоже будет проще.

Абстракцию лень писать, она тебе пока не нужна. В реальном мире ты будешь использовать фреймворк который тебе реалзиует Dependency Injection, и следовательно ты наследование будешь доджить по максимуму. А почему так и зачем - узнаешь уже на опыте.

YoshkinKot

Пользователь

Регистрация: 20.06.2016

Сообщения: 12865

Рейтинг: 5145

YoshkinKot

Регистрация: 20.06.2016

Сообщения: 12865

Рейтинг: 5145

Armagedonby_ZERGS сказал(а):

ООП на питоне, в голосину)

Нажмите, чтобы раскрыть...

Да нормальное ООП)

Ectx

Пользователь

Регистрация: 20.07.2020

Сообщения: 1509

Рейтинг: 695

Ectx

Регистрация: 20.07.2020

Сообщения: 1509

Рейтинг: 695

img
Armagedonby_ZERGS сказал(а):

Абстракцию лень писать, она тебе пока не нужна. В реальном мире ты будешь использовать фреймворк который тебе реалзиует Dependency Injection, и следовательно ты наследование будешь доджить по максимуму. А почему так и зачем - узнаешь уже на опыте.

Нажмите, чтобы раскрыть...

Да уже пришел в спринг, если я правильно понимаю то что ты говоришь то это скорее всего связано с сильной зависимостью и слабой которая как раз и спринг делегирует.

Armagedonby_ZERGS сказал(а):

Инкапсуляция != сокрытие.

Нажмите, чтобы раскрыть...

Извини, можешь о чём этот кусочек текста которая выдает гугл, разобраться? 

Инкапсуляция - Java для автоматизаторов Инкапсуляция (encapsulation) — это сокрытие реализации класса и отделение его внутреннего представления от внешнего (интерфейса). При использовании объектно-ориентированного подхода не принято применять прямой доступ к свойствам какого-либо класса из методов других классов.

haHAA

Пользователь

Регистрация: 25.03.2017

Сообщения: 1079

Рейтинг: 726

haHAA

Регистрация: 25.03.2017

Сообщения: 1079

Рейтинг: 726

img
Ectx сказал(а):

Извини, можешь о чём этот кусочек текста которая выдает гугл, разобраться? 

Нажмите, чтобы раскрыть...

10 минут поиска в гугле говорят, что сокрытие во многих популярных языках программирования это частный случай инкапсуляции. Например, в джаве это модификаторы доступа.

Лично для себя я выделил простое определение инкапсуляции - "механизм разделения пользовательского интерфейса и внутренних данных" (или чет похожее).

А вообще складывается такое ощущение, что определения ООП, SOLID придумывали философы)) Как можно больше определений в других определениях.

Armagedonby_ZERGS

Пользователь

Регистрация: 23.03.2015

Сообщения: 11371

Рейтинг: 4428

Armagedonby_ZERGS

Регистрация: 23.03.2015

Сообщения: 11371

Рейтинг: 4428

Ectx сказал(а):

Да уже пришел в спринг, если я правильно понимаю то что ты говоришь то это скорее всего связано с сильной зависимостью и слабой которая как раз и спринг делегирует.

 

Извини, можешь о чём этот кусочек текста которая выдает гугл, разобраться? 

Инкапсуляция - Java для автоматизаторов Инкапсуляция (encapsulation) — это сокрытие реализации класса и отделение его внутреннего представления от внешнего (интерфейса). При использовании объектно-ориентированного подхода не принято применять прямой доступ к свойствам какого-либо класса из методов других классов.

Нажмите, чтобы раскрыть...

Лучше него я не смогу ну никак.

 

YoshkinKot сказал(а):

Да нормальное ООП)

Нажмите, чтобы раскрыть...

Если исключить остальные ООП языки.

А вообще - ООП это утопия. Он сувществует лишь в воображении, настоящего ООП никогда и нигде нет.

 

Ectx сказал(а):

Да уже пришел в спринг, если я правильно понимаю то что ты говоришь то это скорее всего связано с сильной зависимостью и слабой которая как раз и спринг делегирует.

Нажмите, чтобы раскрыть...

Да.

Наследование нужно что бы получить всю ф-нальность класа родителя, переиспользуя его код.

Но на практике ты завязваешь свой клас на клас родителя, и заганяешь себя в очень строгие рамки.

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

Wuqing

Пользователь

Регистрация: 07.05.2014

Сообщения: 5888

Рейтинг: 3868

Нарушения: 10

Wuqing

Регистрация: 07.05.2014

Сообщения: 5888

Рейтинг: 3868

Нарушения: 10

img
RuRuGlobal сказал(а):
Как понимать основы объектно-ориентированного программирования, книжки есть или видео-лекции на ютубе? Нужно для питона и пандаса
Нажмите, чтобы раскрыть...

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

1 - генеральная

2 - объект

YoshkinKot

Пользователь

Регистрация: 20.06.2016

Сообщения: 12865

Рейтинг: 5145

YoshkinKot

Регистрация: 20.06.2016

Сообщения: 12865

Рейтинг: 5145

Armagedonby_ZERGS сказал(а):

Если исключить остальные ООП языки.

А вообще - ООП это утопия. Он сувществует лишь в воображении, настоящего ООП никогда и нигде нет.

Нажмите, чтобы раскрыть...

Ну почему нет нигде? Для наличия ООП на самом деле достаточно наличия лексического замыкания. Больше для счастья ничего не надо, дальше только удобство и скорости.

Armagedonby_ZERGS

Пользователь

Регистрация: 23.03.2015

Сообщения: 11371

Рейтинг: 4428

Armagedonby_ZERGS

Регистрация: 23.03.2015

Сообщения: 11371

Рейтинг: 4428

YoshkinKot сказал(а):

Для наличия ООП на самом деле достаточно наличия лексического замыкания.

Нажмите, чтобы раскрыть...

Упираемся в то что ты считаешь ООП - ООП.

Создавать объекты которые хранят состояние? Ок, это есть много где.

Но именно как парадигма. Которую пыталась реализовать та же Джава - это утопия. В той же джаве нет переопределения методов, и уже этого достаточно что бы сказать что Джава - не соответствует парадигме ООП.