Очередной раз убедился, что ты один из немногих, который действительно может доступно, доходчиво и главное интересно объяснить! Спасибо огромное, за то что ты делаешь!
В примере с наследованием на 8:30 после переопределения this.model = `${model} Model`; и вызвав родительский метод teslaAuto.getAutoType() мы получим //Tesla 3 Model - 2019, а не //Tesla 3 - 2019 как на скрине у ТС. Видео класс, спасибо автору.
Спасибо за твои труды! Шикарное видео! Как все просто на самом деле! Столько разных роликов на эту тему и книг, а понять что-либо из них крайне тяжело. Все заумно и запутанно. А здесь и просто, и понятно. Евгений, у тебя явно талант преподавания! Может стоит этим заняться профессионально? PS: очень не хватает именно твоих уроков по алгоритмам и структурам данных, желательно на примере JavaScript. Уверен: желающих на эту тему будет немало.
Прекрасное видео, обычно не оставляю комментарии, но здесь никак иначе, продолжайте в том же духе! п.с. из этой серии посмотрел бы такое же видео про ФП, может быть интересно
9:14 При обращению к классу подобным образом консоль выводит undefined (за исключением Auto.name = "Auto" имя класса), в TS вообще так обратиться нельзя. А даже если найдется пользователь который через инструменты разработчика найдет наш класс и что-то там поменяет, какая разница ведь при перезагрузке страницы все сбросится. То же самое если пользователь нажмет f12 и начнет удалять теги. Концепция инкапсуляции занятна, но разве она широко относится к JavaScript? Может что-то не понимаю, но по ощущениям вся инкапсуляция в js сводится к не использованию метода eval в пользовательском вводе. Полиморфизм - зачем нам создавать несколько дочерних классов с одним и тем-же методом и из них брать метод родительского? Можно на основе класса Auto создать объекты, скидать их в массив и так же проитерироваться по элементам с вызовом функции. Эффект тот же, кода и путаницы меньше. Или это своего рода диверсификация активов?)
Немного отсебятины добавлю. Изначально я С++ дев и когда изучал JS, то пытался все делать через ООП. Чуть мозг не сломал 🙂 Как-то не очень получалось даже с ES6 апдейтом. В TS уже лучше. По-моему ООП стоит изучать с С++ (включая Java и C#), но это мое мнение
В С++, Java,. C# - объект и инстанс класса есть одно и тоже. А для Javascript приходиться еще выделять объект в отдельную сущность из-за заложенного в этот язык прототипного наследования. Я согласен с вами полностью, чистое ООП надо начинать изучать не с JS, а именно с Java или C#, которые были изначально спроектированы под данную парадигму. А вот с C++ все сложнее, там заложено множественное наследование, и сам язык все-таки ближе к процедурности чем к ООП.
Спасибо за видео! Ты смог объяснить концепции. Но примеры - тихий ужас. Вот как свойство VIN может быть приватным свойством класса, если вин должен быть уникальным у каждого инстанса?
Спасибо, за твои уроки. С удовольствием смотрю. Немного уточнить хотел. На 20:27 в последней строке const mi8 = .... Там наверное ты хотел указать new Helicopter(... ?
Супер, только вот тема инкапсуляции и сокрытия, как по мне, не очень раскрыта. Точнее там используется слово, которое можно по разному трактовать(по крайней мере, я так думаю). Самое главное, что нужно запомнить: инкапсуляция обеспечивает сокрытие, но не является им!
Полиморфизм - это когда наоборот. Дочерний класс наследуется от нескольких родителей, в каждом из которых есть одноименный метод с разными типами параметров. А дальше в зависимости от типа параметра выбирается метод из того родителя, где тип параметра совпадает с передаваемым.
ну вообще да, полиморфизм в js это когда в классе родителя определён метод, и когда в дочернем классе мы переопределяем этот метод , то мы получаем результат для этого дочернего т.е. способность объекта использовать один метод для производных классов, получая разный результат
Нет, объединение данных и методов их обработки - это определение понятия класса, а не инкапсуляции. Кроме того, инкапсуляция ничего ни от кого не скрывыет. Нет такой задачи. Например: приватная секция классов ничего ни от кого не скрывает. Любой желающий может полюбоваться деталями реализации.
Функциональное программирование и процедурное программирование не одно и тоже. Функциональное программирование возможно в JS благодаря наличию так называемых "функций первого класса".
Возможно самое понятное видео про ООП ООП парадигма инкапсуляция наследование полиморфизм агрегация композиция интерфейс айпскрипт Джаваскрипт js ts typeScript JavaScript
в композиции у меня не работает почему-то метод start() для объекта, созданного через new Car(). пишет "undefined". если вызывать методы внутренних объектов по отдельности, например engine.start(), то работает. в чём же может быть дело?
понял, в чём дело. метод start() срабатывает, но никаких значений не возвращает. ожидал, что вернёт разом всё, что возвращают методы start() всех вложенных объектов: Engine is started, Wiring is started, FuelPump is started
Так вот какое видео об ООП я ждал все это время... Ютуб чик, подключай алгоритмы - годно та.
Хотелось бы надеяться, что подключит)
Большая тебе благодарность! Приятно смотреть: всё просто, понятно. Пожалуйста, продолжай! Ты делаешь нашу жизнь лучше: я углубился в понимании ООП)
Спасибо большое за поддержку!)
@@YauhenKavalchuk будет просто о алгоритмах и структурах данных?
Евгений, как всегда просто и понятно о сложных вещах, у Вас талант!!!
Спасибо
Очередной раз убедился, что ты один из немногих, который действительно может доступно, доходчиво и главное интересно объяснить! Спасибо огромное, за то что ты делаешь!
Спасибо большое за поддержку
Спасибо вам огромное! Это то, что нужно! Ваше видео помогло собрать в кучу всю информацию, которая была в голове кусками.
Пожалуйста)
Сколько я видео пересмотрел об ООП, твоё самое лучшее, понимание приходит просто моментально! Спасибо тебе огромное!
Спасибо большое за отзыв!)
В очередной раз благодарю за педагогически доходчивую подачу материала 👌
Пожалуйста
Шикарное объяснение! ООП стало еще понятней. Лайк, репост!
Спасибо
Оказывается ООП еще надо подучить ))) огромное спасибо за материал!!
Спасибо за отзыв!
Один из лучших видосов про ооп, коротко, понятно, без лишней воды и тягомотины. Автору спасибо !
Пожалуйста
Спасибо, давно ждал такого хорошего урока по ООП на примере JavaScript.
Пожалуйста
Отлично, от тебя и ждал так как все понятно и просто обесняешь)
Спасибо за отзыв)
Браво👏
Спасибо
Спасибо за старания! У тебя талант не только в разработке, но и к преподаванию.
Спасибо большое за отзыв
В примере с наследованием на 8:30 после переопределения this.model = `${model} Model`; и вызвав родительский метод teslaAuto.getAutoType() мы получим
//Tesla 3 Model - 2019, а не //Tesla 3 - 2019 как на скрине у ТС.
Видео класс, спасибо автору.
Спасибо за отзыв, да отпечатался в выводимом результате
Спасибо за твои труды! Шикарное видео!
Как все просто на самом деле! Столько разных роликов на эту тему и книг, а понять что-либо из них крайне тяжело. Все заумно и запутанно. А здесь и просто, и понятно.
Евгений, у тебя явно талант преподавания! Может стоит этим заняться профессионально?
PS: очень не хватает именно твоих уроков по алгоритмам и структурам данных, желательно на примере JavaScript. Уверен: желающих на эту тему будет немало.
Я не могу заниматься преподаванием профессионально, т.к. никогда не буду получать столько, сколько разработчик
Очень долго ждал подобное видео с твоей подачей, спасибо большое)
Пожалуйста)
Прекрасное видео, обычно не оставляю комментарии, но здесь никак иначе, продолжайте в том же духе! п.с. из этой серии посмотрел бы такое же видео про ФП, может быть интересно
Спасибо за отзыв
Действительно - простое и доходчивое объяснение!
Спасибо за отзыв
Принципи ООП класно описано, але в кінці, то вже hight level! Дякую за контент!
Спасибо за отзыв)
Супер! Спасибо! Наглядно очень
Спасибо большое
Шикарное видео, приятно от каждого слова! =)
Спасибо большое за отзыв!
Спасибо за твои труды!
Всегда пожалуйста
То что нужно! Спасибо Евгений!
Пожалуйста
Вперёд в топы, отлично все объяснено!)
Спасибо за поддержку
Как же это вовремя) заранее спасибо!) приступаем к просмотру)
👍
Түсіне алмай жүр едім, мен үшін қиын болып еді,керемет түсіндіріп бердің,үлкен рахмет!
Пожалуйста)
Респект, спасибо за качественный материал.
Спасибо за отзыв)
4:40 А как же перегрузка конструктора? В C# такое есть.
9:14 При обращению к классу подобным образом консоль выводит undefined (за исключением Auto.name = "Auto" имя класса), в TS вообще так обратиться нельзя. А даже если найдется пользователь который через инструменты разработчика найдет наш класс и что-то там поменяет, какая разница ведь при перезагрузке страницы все сбросится. То же самое если пользователь нажмет f12 и начнет удалять теги.
Концепция инкапсуляции занятна, но разве она широко относится к JavaScript? Может что-то не понимаю, но по ощущениям вся инкапсуляция в js сводится к не использованию метода eval в пользовательском вводе.
Полиморфизм - зачем нам создавать несколько дочерних классов с одним и тем-же методом и из них брать метод родительского? Можно на основе класса Auto создать объекты, скидать их в массив и так же проитерироваться по элементам с вызовом функции. Эффект тот же, кода и путаницы меньше. Или это своего рода диверсификация активов?)
Через имя класса можно обратиться к статическим свойствам и методам.
Спасибо, было очень доступно
Пожалуйста
Очень очень Чётко! 🌠🛠️
Спасибо
Супер подача, спасибо
Пожалуйста
Очень доступно, спасибо!
Пожалуйста
Немного отсебятины добавлю. Изначально я С++ дев и когда изучал JS, то пытался все делать через ООП. Чуть мозг не сломал 🙂 Как-то не очень получалось даже с ES6 апдейтом. В TS уже лучше. По-моему ООП стоит изучать с С++ (включая Java и C#), но это мое мнение
Да, в JS ООП очень не похоже на всё остальное, даже с учётом нового синтаксиса классов. А когда узнаешь, что под капотом прототипы, то усё…)
В С++, Java,. C# - объект и инстанс класса есть одно и тоже. А для Javascript приходиться еще выделять объект в отдельную сущность из-за заложенного в этот язык прототипного наследования. Я согласен с вами полностью, чистое ООП надо начинать изучать не с JS, а именно с Java или C#, которые были изначально спроектированы под данную парадигму. А вот с C++ все сложнее, там заложено множественное наследование, и сам язык все-таки ближе к процедурности чем к ООП.
Очень подробно разжёвано. Я аж даже на мгновение почувствовал себя умным)
👍
Отличное объяснения теперь стало ясно как работает ООП
Отлично!)
Хорошее видео. Сложная тема простым языком.
Спасибо за отзыв)
дзякуй
Кали ласка
Отличное видео, спасибо.
Пожалуйста
Спасибо за видео! Ты смог объяснить концепции. Но примеры - тихий ужас. Вот как свойство VIN может быть приватным свойством класса, если вин должен быть уникальным у каждого инстанса?
Очень ждём курс по js. Спасибо!!
Пожалуйста
Спасибо, за твои уроки. С удовольствием смотрю.
Немного уточнить хотел. На 20:27 в последней строке const mi8 = ....
Там наверное ты хотел указать new Helicopter(... ?
Да, там должен быть класс вертолёт
топчик бро, люблю смотреть твои видосики
Спасибо
@@YauhenKavalchuk было б здорово еще упомянуть статические поля и модификатор доступа protected
на 8:31 в последней строке будет "Tesla 3 Model - 2019"
да, опечатка
На 15:20, наверное, должно быть new AutoFactory
Да, опечатка(
Спасибо. Полезно.
Пожалуйста
Супер, только вот тема инкапсуляции и сокрытия, как по мне, не очень раскрыта. Точнее там используется слово, которое можно по разному трактовать(по крайней мере, я так думаю). Самое главное, что нужно запомнить: инкапсуляция обеспечивает сокрытие, но не является им!
Спасибо за уточнение и пояснение
Благодарю!
Пожалуйста
качественно, спасибо!
Спасибо за отзыв
Полиморфизм - это когда наоборот. Дочерний класс наследуется от нескольких родителей, в каждом из которых есть одноименный метод с разными типами параметров. А дальше в зависимости от типа параметра выбирается метод из того родителя, где тип параметра совпадает с передаваемым.
Я встречал минимум 3 разных объяснения. А то что вы описали немного похоже на Dimond problem
ну вообще да, полиморфизм в js это когда в классе родителя определён метод, и когда в дочернем классе мы переопределяем этот метод , то мы получаем результат для этого дочернего т.е. способность объекта использовать один метод для производных классов, получая разный результат
Нормально, но (очень сильно докопался) хотелось бы четкой фразы что процедурное != функциональное программирование(подход).
А напишите прям комментом различия!) Думаю всем будет полезно
Инкапсуляция - это объединение данных и функций в одном объекте, а также сокрытие данных там, где это есть. В js и python нет сокрытия данных
ок
Нет, объединение данных и методов их обработки - это определение понятия класса, а не инкапсуляции. Кроме того, инкапсуляция ничего ни от кого не скрывыет. Нет такой задачи. Например: приватная секция классов ничего ни от кого не скрывает. Любой желающий может полюбоваться деталями реализации.
Спасибо!
Пожалуйста
Хорошее видео. Спасибо!
Но почему не была затронута тема ассоциации?) Она же вроде рука об руку идёт с агрегацией.
¯\ _(ツ)_/¯
Мб я чего-то не знаю, но вроде как появились в жс рельса, только вроде ещё не всё поддерживает, полифил нужен
Что-то я не совсем понял о чём вы говорите(
@@YauhenKavalchuk про модификаторы в js, # добавили
Да, добавили, только они даже пока ещё не в стандарте. В следующем году должны добавить
Отличное видео
Спасибо)
Еще бы на английском найти такое видео , с таким хорошим обьяснением
А почему не подходит вариант на русском?
@@YauhenKavalchuk подходит чтобы понять. Но интервью на английсом придется проходить
А ты хорош
Спасибо
Не многовато О подряд?
Многовато, но по другому никак
Функциональное программирование и процедурное программирование не одно и тоже. Функциональное программирование возможно в JS благодаря наличию так называемых "функций первого класса".
👍
18:55 не классы создаются а экземпляры этих классов. т.е. объекты
Да, верно
Ты хороший
Спасибо
Лойс
Nice)
👍
👍
Полиморфизм показанн неправильно !
Не была учтена перегрузка методов что является ключевым моментом в полиморфизме.
👍 согласен, есть такой нюанс
годно!
Спасибо
Годно
Благодарю
Вроде как понятно, но запутано. 9:13 Через имя класса множно обратиться только к статическим свойствам и методам.
🤷♂️
Возможно самое понятное видео про ООП
ООП парадигма инкапсуляция наследование полиморфизм агрегация композиция интерфейс айпскрипт Джаваскрипт js ts typeScript JavaScript
👍
No entendí pero sigue así xD
Gracias)
Топчик
Спасибо
#1
#1.1
👍
Ничего не понял
¯\ _(ツ)_/¯
видео хорошее, но допущено 3 опечатки((
8:30, 15:20, 20:23
Не всегда удаётся за всем уследить, особенно в видео с большим количеством кода, да ещё с копированием, что бы создать анимацию
функциональное программирование ≠ процедурное программирование
Об этом уже написали, но не указали отличия
"Об ООП"
Видеокаст называется «Просто О»
Ну блин джаваскрипт это ж скрипт и своей терминологии скрипт это процедура. Все ооп в js это слово this и прототип
Ну, по сути, да
об
Да, я знаю правила русского языка, просто сам видеокаст называется «просто о», поэтому и не стал менять
@@YauhenKavalchuk я дико извиняюсь, может назвать рубрику "просто про" ?
Уже снято 9 выпусков, нет смысла переименовывать
Видно как у всех, тупо перечитал книгу
Ну попробуйте рассказать то, чего нету в книгах и других аналогичных видео. Я с удовольствием посмотрю, или почитаю
Как-то много неточностей, часто тест кода просто неправилен или написано лишнее. Дизлайк.
Пересмотрев видео я заметил только 3 неточности, это много?
@@YauhenKavalchuk для человека, которых других обучает, это очень много.
в композиции у меня не работает почему-то метод start() для объекта, созданного через new Car(). пишет "undefined".
если вызывать методы внутренних объектов по отдельности, например engine.start(), то работает.
в чём же может быть дело?
понял, в чём дело. метод start() срабатывает, но никаких значений не возвращает. ожидал, что вернёт разом всё, что возвращают методы start() всех вложенных объектов: Engine is started, Wiring is started, FuelPump is started
Хорошо что разобрались самостоятельно!