ООП на простых примерах. Объектно-ориентированное программирование
Ғылым және технология
ООП простым языком. Основные концепции объектно ориентированного программирования. Объекты, классы, инкапсуляция, полиморфизм, наследование, композиция, агрегация, интерфейсы, паттерны, solid, dependency injection.
Мой курс "Продвинутый Frontend. В production на React" - ulbitv.ru/frontend
Таймкоды:
00:00 ➝ Введение .
00:55 ➝ Отличие процедурного подхода от объектно-ориентированного.
02:10 ➝ Классы. Объекты. Свойства. Методы. Конструктор.
04:40 ➝ Инкапсуляция и сокрытие. Модификаторы доступа.
11:50 ➝ Наследование.
16:40 ➝ Полиморфизм. Параметрический и ad-hoc
23:00 ➝ Агрегация и композиция.
26:35 ➝ Интерфейсы и абстрактные классы.
32:30 ➝ Внедрение зависимостей. Dependency injection
37:10 ➝ Паттерн singleton
39:00 ➝ Время ставить лайки и писать комментарии :)
Мой канал в telegram и канал для общения подписчиков - t.me/ulbi_tv
Поддержать меня и мой канал вы можете по ссылкам ниже.
Patreon/boosty (доступ к бонусам) - boosty.to/ulbitv
Qiwi кошелек - qiwi.com/n/BODYE821
Яндекс деньги - yoomoney.ru/to/4100116193037469
Пікірлер: 1 700
хоспаде! Наконец то хоть кто то потратил время и силы, что бы на монтаже вырезать набор кода, оговорки, вздохи и чавканье! Это в принципе лучший обучающий материал по программированию, который я видел! Огромное спасибо, очень приятно смотреть и слушать!
@user-gx4oj9yh9n
2 жыл бұрын
U
@awenn2015
2 жыл бұрын
W
@mirakghost1385
2 жыл бұрын
U
@dunakovskyigor852
2 жыл бұрын
Спасибо! Я новичок, мозги "закипели", но при наличии множества новых слов, суть понятна на первый взгляд. Уверен, после нескольких просмотров, всё встанет по местам ;)
@awenn2015
2 жыл бұрын
@@dunakovskyigor852 зачем мне приходит уведомление если вы отвечаете не мне собственно
Ютуб порекомендовал мне это видео сегодня. Видимо, это из-за того, что я искал "белый шум" для медитации и остановки внутреннего диалога.
Гражданин, Вы просто таки превратили ООП, сложившегося в мозгу в непонятную мешанину, в информационную конфетку. За Ваш труд и доходчивое объяснение паттернов можно поставить памятник при жизни. Вы огромный молодец! Карма у вас будет строго положительной.
@UlbiTV
Жыл бұрын
Игорь, спасибо! Рад, что понравилось
@user-wm9tn4pm9z
Жыл бұрын
Привет, есть видео на основе Java?)))
@true7991
Жыл бұрын
привет, чисто из интереса вопрос, зачем сейчас изучать ооп ,если давно уже перешли на функции? я имею ввиду, что сейчас же уже и нигде его использовать
@redheroteam
Жыл бұрын
@@true7991 так в JS все равно всё есть объекты. Для понимания того, как это работает.
@true7991
Жыл бұрын
@@redheroteam ну если только для понимания,то да,а так считай никогда его и не используешь
Узнал из этого урока больше чем знал до этого. Хотелось бы еще видео про патерны проектирования.
Это лучший материал по ООП, что я встречал за последние 3 года. Спасибо за труд и мастерство повествования.
@UlbiTV
2 жыл бұрын
Старался! Спасибо!
@this_IsUsername
2 жыл бұрын
К тому же и доступно, наглядно. Вспоминаю, как это было в универе и какой же кошмар там был, ужас.
@gogenmogen3562
2 жыл бұрын
и чем же лучший? Объяснять инкапсуляцию на геттерах и сеттерах это худшее что можно делать Потом такие люди приходят в компании и пишут по сути ту же самую процедурщину, но с подтипированием
@user-eo5tg9gk5v
2 жыл бұрын
@@gogenmogen3562, что-то не нашёл у тебя лучшего материала по ООП. Засранец что ли? Любишь гадить в комментариях?
@gogenmogen3562
2 жыл бұрын
@@user-eo5tg9gk5v Я уже десятки раз говорил про ООП людям в чатах, еще раз объяснять тебе смысла не вижу, особенно видя твою реакцию Можешь дальше херачить хендлеры сервисы и пожо и думать что пишешь в ООП
За половину пары объяснил половину семестра. Респект
Это лучший материал по ООП, что я встречал за последние 6 лет
Чёткий Человек! У него всё четко! Спасибо тебе огромное! что не водой кормишь,а полноценным наваристым супом понятной информации.Как долго я тебя искала, как долго я тебя ждала🤗🥰
@UlbiTV
2 жыл бұрын
Очень приятно!) спасибо, и приятного аппетита 😂👍 (я про супчик)
@duckdeduct522
2 жыл бұрын
@@UlbiTV 🍜🤤🧠
Как раз были пробелы в ооп, думаю у всех начинающих фронтендеров есть с этим проблемы. Спасибо!!!!
Благодарю, очень модно
Да, все очень понятно - без воды, лишних слов, просто и по делу, это и урок для других преподавателей как надо правильно готовиться к записи)) Спасибо!
Согласен с Kain Akuma. Лучшее видео про ООП! Давно такое искал именно такое, информативное!
@UlbiTV
2 жыл бұрын
Спасибо!
Как вы можете не любить человека, который сделал видео про ООП, чтобы вы послушали
@UlbiTV
2 жыл бұрын
😂❤️
Это самое понятное объяснение ООП, которое я когда-либо слышал. Да ещё и на JS. Очень хорошо, что ты всегда объясняешь на понятных и наглядных примерах, а не как в учебниках тупым текстом. До этого никак не мог понять суть ООП, а сейчас более чем понятно
@RenderDragon
2 жыл бұрын
ts
Ни чего лучше этого канала не встречал. Уметь так объяснить метериал это талант
Слушай, ты просто крут! Такая подача, четко, внятно, громко без воды! Ты просто мастер своего дела!
Невероятная планка контента, все как обычно! ООП простым языком!
Это вселенная помогает мне.. Завтра собеседование, оч плавал в теории, а тут этот видео как послание свыше. Подача - огонь.
@DubinArtur
2 жыл бұрын
Как прошло?
@marspro76
2 жыл бұрын
@@DubinArtur пока не тяну на автоматизацию, сижу в мануальных учу дальше...
тот случай когда, читал/учил но плохо себе представлял что это и как выглядит. Вроде бы уже и начал писать код, применяешь ооп, агрегацию и т.д. но даже не подозреваешь об этом, что это имменно оно, просто знаешь что так можно и нужно делать и всё. После видео приходит осознание и понимание, всё становится на свои места! Просто потрясающий ролик!!! , с ПРОСТЫМИ примерами, понятными для восприятия. Спасибо!
никогда не понимал тайпскрипт, а тут прям интересно стало и что-то понял по нему, спасибо
Пишу чтобы поблагодарить автора за труд, картинки и крупный шрифт радуют и облегчают, радует всё лучше и лучше подача материала, спасибо и успехов в вашей не лёгкой работе, донести сложное для твёрдых лбом и туповатых умом.
@UlbiTV
2 жыл бұрын
Рад, что замечаете мелочи, стараюсь, правда:)
Чёткость и последовательность наглядность ( белым по чёрному) ничто не отвлекает от преподнесенной мысли класс!Лайк!
Вот это да. Первый раз вижу, настолько понятное, с примерами и доходчиво объясненное видео по ООП. Спасибо тебе человечище!!!
Одно из немногих, достойное видео. Все доступно для понимания, также отдельная благодарность за примеры, которые действительно облегчают осознание теоретической части )
Давно не мог точно понять что такое ООП. Были только заученные определения. Просмотрев это видео ни как не мог понять, почему я не наткнулся на него раньше? А оказывается оно вот-вот только вышло. Отличная подача и объяснение материала
Спасибо за простые примеры, разжевал ООП, dependency injection. Делаешь много для рускоязычного ютуба, спасибо ещё раз. Кажется оговорка на 25:32, хотел сказать "вызываем drive у машины", а сказал "вызываем drive у колеса"
Настолько лаконично и в то же время глубоко раскрыл тему.Респект
Знаете почему я люблю C# в нем вот офигенно вот просто красота. Ты видишь что ты объявил, что ты подключил у него можно наследовать много классов. Я считаю си шарп одним из самых красивых и аккуратных языков программирования:)
@oanshee2462
2 ай бұрын
Который списали с Java, где вся та же красота есть.
На мой взгляд, максимально понятно для восприятия преподал материал. Хоть с первого раза не удалось понять интерфейсы и абстрактные классы, однако я понимаю, что лучшего объяснения я не найду. Спасибо, однозначно лайк!
Каждое твоё видео, это как праздник
Дружище ты просто Учитель , учителей !!! Я не знаю даже что сказать ....ПРОСТО ЛУЧШИЙ !!! Спасибо за твою работу!!! очень всё доходчиво объяснил . не в обиду за комент ниже .
Спасибо за видео. Люто присоединяюсь ко всем тем, кто уже в комментариях попросил отдельного видео про паттерны проектирования с примерами!
Мне уже самому смешно, что я постоянно захожу на твой канал, в надежде что там будет новое видео, раз в два дня точно это делаю, и каждый раз радуюсь, когда в рекомендациях всплывает новое видео! Наглядные примеры и качественное объяснение, высокий уровень! Спасибо!
@ilovecameltoe
2 жыл бұрын
поставить оповещение на новое видео не судьба?)
@falsetrue7910
2 жыл бұрын
@@ilovecameltoe колокольчик всегда подводит
Напишу здесь коментарий, чтобы ютуб счел это видео более полезным.
@user-unknovvn
2 жыл бұрын
Сработало)
@shillenet
2 жыл бұрын
Согласен
@neproger3494
2 жыл бұрын
Оно и есть полезное)
@Musicforthesoul-ro5kw
Жыл бұрын
Пожалуй присоединюсь)
@user-cu2jh2jf7d
Жыл бұрын
Плюсую )
Респект автору! Каждая секунда информативна! Полное отсутствие воды! Продолжай в том же духе!
Это то, что я искал, самое понятное объяснение ООП к 2021 году, спасибо
Вот недавно полуторачасовой ролик по продвинутому бэкенду смотрел. И тут выходит этот ролик, для меня как продолжение, более подробное объяснение DI и interface. Вот прям как знаешь что нужно) Спасибо огромное!
Хотим видео о SOLID и GRASP : )
@musabutusofwriter8102
2 жыл бұрын
Томас хватить кодить, едь на премьеру фильма про тебя
@Sum_piscis
2 жыл бұрын
@@musabutusofwriter8102 Просто Томас хочет узнать как переписать матрицу, ведь это говно написано на бафнутом С без ООП и на линейном алгоритме .
@carnizrediz8722
2 жыл бұрын
Солид простенький для понимания, просто запомнить надо
Определенно самый понятный видос по ООП)) Огромная благодарность)
Материал для чайника не прост. Но это лучшее обьяснение что есть. Спасибо огромное)
Если бы подобное объяснение увидел в книге по с++ основ ОПП, когда только начинал изучать, отдал бы все заначки автору
@nikolayalem249
2 жыл бұрын
Добавлю: ради будущих подобных материалов для будущих разработчиков, теперь закину заначку от жены😀
Открыл видео, на паузу, лайк, смотреть!) Спасибо), реально крутой канал
Просто и понятно. Пожалуй лучшее объяснение ООП из тех, что я видел/слышал/читал. Отличное видео, спасибо!
Это идеальная подача материала! Я узнала и поняла из этих 40 минут гораздо больше, чем за курс ООП в колледже. Спасибо Вам большое за контент!!!
@sushinskiy
2 жыл бұрын
Идеальная? Может быть для таких людей, у кого это было недавно в колледже, но не для тех, кто с этим никогда не сталкивался.
@user-th4qi8iv3q
Жыл бұрын
@@sushinskiy как успехи
Большое спасибо автору за тайм-коды, легко найти нужный раздел. Конечно лайк)
Качество твоего контента всегда мотивирует на изучение нового, как всегда лайк, и не останавливайся)
@UlbiTV
2 жыл бұрын
Спасибо!
Больше спасибо за то что такой качественный урок существует на просторах ютуба.
Из этого видео узнал об основах ООП больше чем за 3 года обучения=) Шикарный материал
"Елочку-освежитель на шее" )))) Молодец, с чувством юмора все ОК )))) Инфу донес!!! Супер, как всегда!!!!
В первый раз вижу такой интересный и главное понятный ролик по ооп, очень понравилось
@UlbiTV
2 жыл бұрын
Очень рад, что получилось интересно!
ничего лишнего, все кратко и понятно с отличными примерами
27:34 наконец понял разницу между. Спасибо!
Ой ляяяяя, на сколько же хорошое видео. Как всё чётко и по полочкам обьяснил, спасибо большое
лучший канал по программированию, почему так мало подписчиков?
@UlbiTV
2 жыл бұрын
Двигаемся потихоньку с вашей помощью
Я один из многих, кто оставляет комментарий под этим видео для его продвижения, так как это шедевр!
Нормальное объяснение. Я, как прогер на С++, одобряю. Наследование с полиморфизмом очень хорошо подходит при реализации каких-нибудь GUI или графических движков. Прямо вообще идеал. Родительским классом является сущность, вроде "графический объект, который надо нарисовать". Но если у нас разные объекты, которые нужно рисовать по разному, то мы наследуемся от родительского класса и в классе-потомке переопрелеляем метод "Нарисовать". Бывает так, что объекты нужно нарисовать в правильной последовательности. Иногда нужно исключать и включать из очереди рендеринга целые группы объектов. Тогда строятся деревья родительских объектов. И механизмы работы с деревьями можно встроить в сами родительские объекты. Например, объект "Окно" содержит внутри массив (или лучше связанный список, если это язык с ручным контролем памяти, как С++) подчиненных объектов того же типа. Метод "Нарисовать" рисует сначала сам объект, потом массив подчиненных. Тогда вызвав у окна метод "Нарисовать", сначала нарисуется прямоугольник окна, а потом и все его элементы управления, вроде кнопок, полей ввода и других вещей. И это всего лишь один пример практического использования парадигмы ООП.
@konstest
Жыл бұрын
Страуструп в своих книгах ООП как раз на примере графики рассказывает именно таким образом.
@Micro-Moo
Жыл бұрын
Это верно, но корректнее говорить не о полиморфизме, а о позднем связывании как о способе динамический диспетчеризации вызова метода. Именно это и является ядром ООП. А полиморфизм это уже его применение. (Формально говоря, полиморфизм возможен и без этого, но это уже патологический случай, можно его не рассматривать как тривиальный, да и практически малоприемлемый.) Вообще наиболее обычное преподавание ООП меня ни в какой степени не устраивает. Я имею в виду, когда инкапсуляцию, наследование, агрегацию объясняют как набор атрибутов ООП, в одну линеечку. А вообще-то одни выразительные средства являются условием других, нельзя их мешать в одну кучу. Понятно, что постоянно встречаются умельцы, которые используют и class и даже virtual, a ООП и не пахнет. Я нередко с такими сталкивался, хорошо ещё, что работать с такими не приходится. Но на более раннем этапе даже достаточно популярные коммерческие библиотеки такие встречались, с фейком ООП, хотя в это даже поверить трудно.
Жаль что админ канала frontend разработчик . Спасибо большое, хоть на языке тайпскрипт написал код, но почти все понятно и доступно )))
Отличный ролик. Просьба - сделай полностью проект с процедурным подходом.
Лучшее видео по ООП для новичков из всех которые я видела
Спасибо! достаточно кратко, все по существу! без лишних соплей.
Объяснено доступно без воды и нудятины. Спасибо за ролики, которые делаешь
Супер!!! Очень лаконично, доступно и интересно подается достаточно серьезная и непростая тема, мастерски!!!
Это лучшее, что я видел и слышал за свою жизнь!
Спасибо, наконец-то я понял что такое ООП, ясно, четко! 👍
ЕЕЕ. Свежий видос по ООП. Задолбался смотреть видео 100ней давности
чот улыбнуло) с "привет, я прогер Евпатий". спасибо за видео
@UlbiTV
2 жыл бұрын
😂
блин, мужик, как же ты доходчиво поясняешь!!!
Люто плюсую и подписываюсь! Очень понятный контент, даже для такого тормоза как я!
Здоровско. Очень понравилось. Материал структурирован, понятен, для ознакомления то, что надо! Молодец! Спасибо!)
Не, ну молодец, навел небольшой порядочек в моем отчаявшемся джуниорском мозгу. Лайк, подписка!
Годный материал, с помощью этих примеров я понял то, что давно читал в книжках, программировать не программирую, а читать читаю, пробовал программировать чуть что пошло не поплану пару часов попытаюсь исправить, пойму что ничего не выходит и бросаю, хотя уже и складывается ощущение что я это уже где-то видел или слышал)
Большое спасибо, освежил в памяти
Отличиное видео! Коротко и наглядно. И очень важно - качественное. Без всяких там беее, меее, чвяканий и куяканий. Четкая речь и все по делу. Таких качественных видосов на ютубе с гулькин клюв к сожалению.
@UlbiTV
2 жыл бұрын
Стараюсь друг, стараюсь:)
Я с Си, перехожу на С++. И ООП в вашем изложении понятен. Благодарю. Единственное, когда вы показываете код, то на мобилке его не видно (мелкий). Хотя вам достаточно Ctrl+колесико его увеличить :) Ибо на компе не всегда есть возможность смотреть.
Подписчиков должно быть в разы больше. Супер контент.
Урок топовый, все понятно, легко и наглядно, лучший урок про ООП из всех что я видел
ООП простым языком, это шикарно!:)
После прослушивания и осмысления данного видео действительно появляется в голове картинка, как устроено в общем ООП. Очень хорошая подача материала, без каких-то сложных и непонятных определений, приятная визуализация для лучшего усвоения теории. Спасибо большое за ваш труд✊🏻
ООП с примерами это хорошо. Автор все понятно рассказал.
Доступно, понятно, с примерами. Класс! Лайк! Аплодисменты)))
Тимур, отличный подбор контента 🔥👍🏻 все пилят небольшие проекты по вёрстке, JS и фреймворкам, забывая про основы основ
@wh1teb1ack92
2 жыл бұрын
Так а что еще пилить остается...Тут знания на каждом углу, но если их не применить, то они сразу улетучиваются, хоть ты еще раз все пройди и перечитай. Поэтому и делаются пет-проекты, чтобы применить хоть что-то, иначе бы была вообще беда.
На первый раз ничего не понял но было интересно ! Буду еще раз пересматривать и не один раз! Чётко рассказываешь!
Очень хорошие явные примеры .Просто и понятно описано ,особенно в блок-схемах. Немного нехватает более явных примеров интерфейса и патернов. Спасибо
Возможно это видео и не наберёт сотни тысячи просмотров, но больше спасибо за проделанную работу. Ты очень помог и мне, и судья по комментариям и лайкам, другим тоже.
@UlbiTV
2 жыл бұрын
Спасибо! Рад слышать)
@largebrother6308
2 жыл бұрын
Жжхээээээээ
Вот это крутой ролик) хотелось бы ещё большой урок по паттернам )
@andrzejrecoba8736
2 жыл бұрын
+1
@user-le4sc7tm6e
2 жыл бұрын
+1
@programming5944
2 жыл бұрын
+1
@chcylabrab
2 жыл бұрын
+2
@qdexy
2 жыл бұрын
+1
Огромная благодарность вам за ваши видео!
Всегда. ВСЕГДА И У ВСЕХ - не хватает информации - как, где и когда это применять. Т.е. я узнал много нового и интересного - а теперь мне нужна дюжина примеров - где это применить. Т.е. я после просмотра этого видео - буду что-то писать и НЕ УВИЖУ что тут нужно применить, например композицию. Когда говорят, что для обучения программированию "нужен менторинг" - то нужен он именно для того, чтобы посмотреть код и сказать - "здесь делай композицию, а здесь примени синглтон". Но эта "передача опыта" вполне заменяема набором примеров - взглядом с разных сторон, на то, как один принцип реализуется в разных ситуациях. Автору - в любом случае - большое спасибо и не мне ему говорить, чтобы он делал больше и лучше, хотя было бы неплохо =) Просто я вижу, что можно сделать... вернее - нет принципиальной НЕвозможности сделать - такой обучающий материал - чтобы прям, как в матрице - загружалось в мозг и сразу работало 😶🌫
@petrvictorovich
Жыл бұрын
А ещё... по-мелочи. Меня очень путает, когда одно и то же называется разными словами. В данном ролике я бы заменил все "объекты" на "экземпляр класса" - потому что это более однозначно. "Объекты" бывают разные - а "экземпляр класса" - это сразу понятно что про ООП и про new Class()
@petrvictorovich
Жыл бұрын
А ещё... по-мелочи. Меня очень путает, когда одно и то же называется разными словами. В данном ролике я бы заменил все "объекты" на "экземпляр класса" - потому что это более однозначно. "Объекты" бывают разные - а "экземпляр класса" - это сразу понятно что про ООП и про new Class()
Лучший!!! 1 год в университете научил меня меньшему чем ты показал на ролике. То чувство, когда лайк подписка коммент заслуженный. Даже стыдно что ничего больше сделать не могу XD. Го пройдись по паттернам мне кажется залетит. Спасибо
@UlbiTV
2 жыл бұрын
Спасибо братец:)
Благо дарю Тимур! контент про ООП получился годным. Очень качественная имплементация.
Спасибо большое за проделанную работу! Лучшее пособие по ООП.
Это исключительное умение и способность конструировать и доносить эти абстракции и паттерны, благодарю и успехов тебе
Спасибо тебе огромное! Ты единственный, кого я смогла понять!
@UlbiTV
2 жыл бұрын
Значит не зря старался :)
огромный респект автору за видео. Очень доходчиво объяснил принципы ООП)))
Кратко, четко, понятно. Отличная подача!
Эх, какой же ты крутой, автор! Спасибо!!! Твой контент - бесценен!
Все отлично разложено по полочкам. Снимите пожалуйста видео по основным паттернам с рефакторинг-гуру. И добавьте пожалуйста в плейлист, чтобы можно было посмотреть вместе)
@Micro-Moo
Жыл бұрын
Да уж. Наличие в команде «рефакторинг-гуру» говорит в первую очередь о безобразном состоянии проекта, и часто о неприемлемом уровне умений разработчиков. Многие такие проекты сильно выигрывают, когда разработку начинают сначала, используя только полученный опыт и отдельные удачные кусочки старого кода. То, что это экономически невыгодно - один из распространённых мифов, почва для самообмана.
Понятно и структурировано. Автор большой молодец, продолжай👍
Просто, неспешно, с картинками и без воды. Молодец!
Красавчик, всë понятно, без лишних слов.
Спасибо за простое объяснение! Примеры хорошие.