ООП на пальцах. Объектно-ориентированное программирование | 2023

Поділитися
Вставка
  • Опубліковано 22 гру 2024

КОМЕНТАРІ • 59

  • @svyat404
    @svyat404  Рік тому +2

    💻Задумываешься об IT, но не знаешь, с чего начать? Начни с базы! svyat404.com/base/
    🧑‍💻Этот курс - идеальная отправная точка с фокусом на практике. С первого занятия ты будешь писать код, разбирать реальные задачи и создавать свои программы.
    🚀Узнай больше svyat404.com/base/

  • @piypiy_n
    @piypiy_n Рік тому +7

    Господи ну наконец-то я нашла видео,где понятно объясняют каждый из принципов!!!!!

  • @konstantynnazarenko101
    @konstantynnazarenko101 9 місяців тому +4

    Шикарное объяснение. И последний блок, где кратко о каждом принципе - лучшее объяснение, которое я читал или слушал. Спасибо, дружище!

  • @JeremyRough
    @JeremyRough Рік тому +4

    Как же кайфово подан материал!

  • @sixfingers91
    @sixfingers91 8 місяців тому +2

    ОФигенно лаконично и ,при этом, недвусмысленно понятно!! Спасибо большое С меня 👍

  • @name_surname-eo6dz
    @name_surname-eo6dz Рік тому +4

    Хорошо объясняешь.Без воды.

    • @MJWaaat
      @MJWaaat Рік тому +2

      Согласна 👍 у него целая серия коротких и понятных роликов 😏 я например с апи разобралась наконец то благодаря этому каналу )

  • @sonicartem1076
    @sonicartem1076 Рік тому +3

    На данный момент это лучшее объяснение ООП увиденное мной.

  • @fromragstoriches6895
    @fromragstoriches6895 3 місяці тому +1

    Спасибо за видео. Уже не в первый раз натыкаюсь на ваши видео и остаюсь довольным от полученной информации и пользы

  • @r1-yzf216
    @r1-yzf216 4 місяці тому +1

    как легко и просто ! благодарю !

  • @katrin_stein87
    @katrin_stein87 Рік тому +1

    Отличное объяснение! Коротко, но ëмко.

  • @MJWaaat
    @MJWaaat Рік тому

    Долгожданное видео 🎉 отличное объяснение, спасибо.
    Видела разные определения абстракции до этого, кто то даже менял местами инкапсуляцию и абстракцию )

  • @-hellsbook9599
    @-hellsbook9599 Рік тому +1

    Вопрос насчёт полиморфизма. Я только постигаю основы ООП, поэтому извиняюсь заранее, если вопрос окажется глупым.
    В примере 4:50 показывается проверка типа данных внутри метода. Это рациональнее использовать, чем перегрузку методов?

    • @svyat404
      @svyat404  Рік тому +2

      Все зависит от конкретного случая. В примере который я показывал мы использовали третий класс Helper внутри которого мы и делали эту проверку. Чтобы применить сюда перегрузку методов мы должны были сделать новый класс HelperExtended который расширил бы наш Helper и перегрузил бы тот метод. Но в этом случае нам нужно было бы явно следить, чтобы мы использовали корректный Helper класс в теле программы.
      Так что и та и та реализации имеют место быть. А вот рациональность нужно оценивать исходя их конкретных задач и исходных данных :)

    • @ГеннадийШушпанов-д1ч
      @ГеннадийШушпанов-д1ч 5 місяців тому

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

  • @evanwavechanel
    @evanwavechanel 6 місяців тому +2

    А откуда такое определение абстракци? Можно ссылку на литературу из который вы его взяли? Первый раз такое слышу.

    • @svyat404
      @svyat404  6 місяців тому

      Ну вот например пара ссылочек:
      en.wikipedia.org/wiki/Object-oriented_programming#Data_abstraction_and_encapsulation
      www.digitalocean.com/community/tutorials/what-is-abstraction-in-oops

  • @AlexCujba-ye1bv
    @AlexCujba-ye1bv 2 місяці тому

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

  • @allshrf2112
    @allshrf2112 5 місяців тому

    finaly, я понял смысл, спасибо за ролик

  • @kostyagusto5109
    @kostyagusto5109 10 місяців тому +3

    так и не понял разницу между абстракцией и инкапсуляцией

    • @svyat404
      @svyat404  10 місяців тому +2

      Инкапсуляция это про то что методы и атрибуты относящиеся к одной сущности должны быть внутри одного класса. In capsule - внутри капсулы. То есть это в целом про устройство класса и ООП.
      Абстрагирование это про то, как с объектом взаимодействуют другие части программы. То есть мы всю «подкапотную» логику прячем внутри класса под ширмой приватности, а оставшиеся методы и атрибуты открываем для доступа снаружи.
      Надеюсь теперь стало понятнее 🤔

    • @kostyagusto5109
      @kostyagusto5109 10 місяців тому +1

      @@svyat404 то есть эти два механизма используют сокрытие, но для разных семантических целей?

    • @svyat404
      @svyat404  10 місяців тому +3

      ​ @kostyagusto5109 инкапсуляция не про сокрытие. Про сокрытие абстракция.
      Они действительно очень похожи потому что вытекают один из другого.
      То есть инкапсуляция говорит нам о том, что методы и атрибуты с которыми работают эти методы должны быть в одном классе.
      В случае с инкапсуляцией иногда можно встретить упоминание сокрытия, но тут идет речь о том, что атрибуты объекта нельзя править напрямую. То есть нельзя сделать user->age = 18. Это должен делать метод внутри класса. user->setAge(18);

    • @kostyagusto5109
      @kostyagusto5109 10 місяців тому +1

      спасибо большое,@@svyat404

    • @MJWaaat
      @MJWaaat 10 місяців тому

      @@svyat404очень понятно, я теперь поняла! Спасибо!
      Так а принципа 3 или 4 ? 😀

  • @vikag7356
    @vikag7356 9 місяців тому

    Спасибо

  • @alexpipin3693
    @alexpipin3693 5 місяців тому

    а давайте ваш видос скормим Мурычу, капец весело будет))

  • @xl1034
    @xl1034 6 місяців тому +2

    Представьте себе, что у вас есть 20 абсолютно разных людей, изолированных друг от друга, которые не могут общаться между собой. Вам надо устроить утренник в детском саду. Репетиций нет, только одна попытка. Попробуйте раздать им задачи таким образом, чтобы когда они встретятся на утреннике, все понимали кто есть кто и что делать) Ах, да! Вася это сын Марии Ивановны, он умеет всё то, что Мария Ивановна, но, в силу возраста, делает это немного иначе)

  • @s.Huguenot
    @s.Huguenot 8 місяців тому

    Привет, что за растение на заднем плане ?

    • @svyat404
      @svyat404  8 місяців тому

      Привет! Если честно хз 😅 что-то искусственное 😅

  • @antropovp
    @antropovp 7 місяців тому

    5:15 нарушает solid

  • @AlmirSaitov-sl4gg
    @AlmirSaitov-sl4gg Рік тому +4

    А минусы выйдут через месяц))

  • @georgeunknown6381
    @georgeunknown6381 2 місяці тому

    Я так и не понял, ООП это парадигма или стиль программирования?

    • @svyat404
      @svyat404  2 місяці тому

      А чем парадигма от стиля отличается?
      Вот что википедия говорит
      Парадигма, в программировании - это совокупность идей и понятий, определяющих стиль написания компьютерных программ (подход к программированию).

    • @georgeunknown6381
      @georgeunknown6381 2 місяці тому

      @@svyat404 для меня парадигма это скорее набор, совокупность неких правил, установок, наблюдений, которые выражают общий тренд, идею, обстоятельства, а стиль - это некий способ, один из способов, делать одну и ту же вещь...например, можно нарисовать кошку карандашом, а можно акварелью - и там, и там будет одна и та же кошка, но нарисованная разными стилями - опять же, даже рисуя одним и тем же способом, стилем, но внося свою особенность, свой стиль, авторский, можно рисовать по-другому: два автора рисовали кошку акварелью, но стиль выражения разный..ну, то есть, парадигма это как бы "над", а стиль "под", по иерархии смыслов..значит, в программировании это трактуется всё по-своему, будем знать

  • @georgeunknown6381
    @georgeunknown6381 2 місяці тому

    Питер Гиббонс, ты??😮

  • @Кратос-с9х
    @Кратос-с9х 4 місяці тому

    На каком я п это написано?

    • @svyat404
      @svyat404  4 місяці тому

      В ролике я использовал несколько разных языков.
      Когда мы перешли к принципам ООП то там использовался PHP

    • @Кратос-с9х
      @Кратос-с9х 4 місяці тому

      @@svyat404 понятно! Спасибо кстати что ответил. Я просто учу джава (знаю базу) и немного сомневаюсь востребован ли будет он, подскажи ты плз

    • @svyat404
      @svyat404  4 місяці тому

      @@Кратос-с9х увы врядли кто-то точно сможет ответить на этот вопрос. Это все будут предположения :)
      Мне кажется лучше идти от обратно, посмотреть сколько вакансий есть на Java сейчас у тебя в доступе и исходя из этого уже и делать выбор.

  • @fpedotovvalentin
    @fpedotovvalentin 8 місяців тому +14

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

    • @hellohi763
      @hellohi763 4 місяці тому

      а давай по фактам? или пустословство

    • @fpedotovvalentin
      @fpedotovvalentin 4 місяці тому +2

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

    • @svyat404
      @svyat404  3 місяці тому +1

      @fpedotovvalentin
      А без интерфейсов у нас нет ООП?
      Инкапсуляция - en.wikipedia.org/wiki/Encapsulation_(computer_programming)
      Абстракция - en.wikipedia.org/wiki/Object-oriented_programming#Data_abstraction_and_encapsulation
      Наследование - я вроде даже как пример показал зачем это используется
      Полиморфизм - через пример конкретной реализации все же понятнее

    • @lintorlink
      @lintorlink 2 місяці тому

      ​@@svyat404Тогда вопрос насчёт ваших слов о том, что при инкапсуляции "хранятся вместе": неужели определение метода класса вне непосредственно класса в том же C++ нарушает принцип инкапсуляции?

    • @svyat404
      @svyat404  2 місяці тому

      @@lintorlink если честно не совсем понял вопрос. "Хранятся вместе" имеется ввиду что есть у нас у класса есть атрибут color то мы не можем извне его изменить напрямую. Нам нужен метод setColor который и сделает это изменение. Если метод setColor будет в другом классе - то это нарушение принципов, да

  • @Roger-qj4wu
    @Roger-qj4wu Рік тому

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

    • @alexgorodecky1661
      @alexgorodecky1661 7 місяців тому

      С появлением, простите? 😂

  • @afin4684
    @afin4684 Рік тому +1

    Что за яп?

    • @svyat404
      @svyat404  Рік тому +1

      В основной части PHP.
      В самом начале там python и pascal :)

  • @inesesare3465
    @inesesare3465 3 місяці тому +2

    ничего непонятно по прежнему. не самое удачное объяснение

  • @Vghhjhh-ck2df
    @Vghhjhh-ck2df 8 місяців тому

    Гг

  • @dmitriypermyakov5402
    @dmitriypermyakov5402 Рік тому +7

    Нахер, даже досматривать не стал.

  • @ПётрГригорьев-т1ь

    очень абстрактное объяснение без примеров.

    • @svyat404
      @svyat404  Рік тому +1

      А ты точно видос смотрел? :)