RuRuGlobal

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

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

Сообщения: 818

Рейтинг: 106

Нарушения: 10

RuRuGlobal

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

Сообщения: 818

Рейтинг: 106

Нарушения: 10

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

Александр

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

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

Сообщения: 4399

Рейтинг: 3702

Александр

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

Сообщения: 4399

Рейтинг: 3702

RuRuGlobal сказал(а):

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

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

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

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

RuRuGlobal

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

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

Сообщения: 818

Рейтинг: 106

Нарушения: 10

RuRuGlobal

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

Сообщения: 818

Рейтинг: 106

Нарушения: 10

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

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

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

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

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

mugiwara2

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

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

Сообщения: 2185

Рейтинг: 998

mugiwara2

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

Сообщения: 2185

Рейтинг: 998

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

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

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

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

E1ektr0

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

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

Сообщения: 540

Рейтинг: 231

E1ektr0

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

Сообщения: 540

Рейтинг: 231

img

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

DrZoidberg

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

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

Сообщения: 1076

Рейтинг: 403

Нарушения: 65

DrZoidberg

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

Сообщения: 1076

Рейтинг: 403

Нарушения: 65

RuRuGlobal сказал(а):

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

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

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

Ectx

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

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

Сообщения: 1276

Рейтинг: 608

Ectx

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

Сообщения: 1276

Рейтинг: 608

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


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

Я допустим теорию понял уже после того законил курс джаву. Там говорилось что надо private писать(истинная инкапсуляция), что нужно наследоваться чтобы не повторять не нужны куски кода(наследование) и объясняли что нужно в некоторых местах делать классы final чтобы никто не наследовался от класса и в будущем при помощи полиморфизма не впихнул в твой метод класс который уже совсем другой.
А абстракцинизм смахивает на интерфейс. Поправьте если чё то напутал, я новичок artworks-JUwkm3SiCcPKGYZr-OUzMmQ-t500x500.jpg
Сказать что я понял азы ООП, и теперь я гуру нельзя. Но хоть что то в этом я начал понимать. 

Armagedonby_ZERGS

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

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

Сообщения: 11349

Рейтинг: 4412

Armagedonby_ZERGS

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

Сообщения: 11349

Рейтинг: 4412

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

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


Ectx сказал(а):

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

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

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


Ectx сказал(а):

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

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

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

Ectx сказал(а):

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

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

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

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

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

YoshkinKot

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

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

Сообщения: 5183

Рейтинг: 1981

YoshkinKot

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

Сообщения: 5183

Рейтинг: 1981

Armagedonby_ZERGS сказал(а):

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

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

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

Ectx

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

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

Сообщения: 1276

Рейтинг: 608

Ectx

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

Сообщения: 1276

Рейтинг: 608

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

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

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


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


Armagedonby_ZERGS сказал(а):

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

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


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


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

haHAA

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

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

Сообщения: 563

Рейтинг: 374

haHAA

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

Сообщения: 563

Рейтинг: 374

Ectx сказал(а):

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

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

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

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

Armagedonby_ZERGS

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

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

Сообщения: 11349

Рейтинг: 4412

Armagedonby_ZERGS

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

Сообщения: 11349

Рейтинг: 4412

Ectx сказал(а):


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

 


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


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

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


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

 

YoshkinKot сказал(а):

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

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


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

 

Ectx сказал(а):

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

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

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

Wuqing

Heartless

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

Сообщения: 2801

Рейтинг: 1834

Wuqing

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

Сообщения: 2801

Рейтинг: 1834

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

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

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

2 - объект

YoshkinKot

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

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

Сообщения: 5183

Рейтинг: 1981

YoshkinKot

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

Сообщения: 5183

Рейтинг: 1981

Armagedonby_ZERGS сказал(а):

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

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

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

Armagedonby_ZERGS

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

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

Сообщения: 11349

Рейтинг: 4412

Armagedonby_ZERGS

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

Сообщения: 11349

Рейтинг: 4412

YoshkinKot сказал(а):

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

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

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