Объектно-ориентированное программирование (ООП) в C#. Инкапсуляция, наследование, полиморфизм #8

Sdílet
Vložit
  • čas přidán 28. 11. 2018
  • Объектно-ориентированное программирование (ООП) в языке программирования C#. Инкапсуляция, наследование, полиморфизм - Учим Шарп
    На этом занятии мы рассмотрим основные парадигмы объектно-ориентированного программирования (инкапсуляция, наследование, полиморфизм, абстракция, посылка сообщений, повторное использование кода). Познакомимся с модификаторами доступа (private, protected, internal, public).
    -----------
    ПОДПИШИСЬ на соцсети:
    🔴 TELEGRAM: bit.ly/tg_codeblog
    🔴 VK: bit.ly/vk_codeblog
    🔴 INSTAGRAM: bit.ly/inst_codeblog
    🔴 Яндекс Дзен: bit.ly/zen_codeblog
    🔴 FACEBOOK: bit.ly/fb_codeblog
    🔴 TWITTER: bit.ly/twit_codeblog
    🔴 Мой блог: bit.ly/site_codeblog
    -----------
    ПОДДЕРЖИ развитие CODE BLOG:
    💲 Донат: bit.ly/donate_codeblog
    💲 Спонсорство: bit.ly/patreon_codeblog
    -----------
    СМОТРИ мои обучающие курсы:
    👉 УЧИМ ШАРП: bit.ly/cs_codeblog
    👉 ПРАКТИЧЕСКИЙ ИНТЕНСИВ #1: bit.ly/fit_codeblog
    👉 ПРАКТИЧЕСКИЙ ИНТЕНСИВ #2: bit.ly/crm_codeblog
    👉 СТРУКТУРЫ ДАННЫХ: bit.ly/ds_codeblog
    👉 АЛГОРИТМЫ СОРТИРОВКИ: bit.ly/sort_codeblog
    👉 ОТВЕТЫ НА ВОПРОСЫ: bit.ly/faq_codeblog
    👉 IT ПЕРЕОЗВУЧКА: bit.ly/resound_codeblog
    👉 НЕЙРОННАЯ СЕТЬ: bit.ly/ai_codeblog
    👉 ПАТТЕРНЫ ПРОЕКТИРОВАНИЯ: bit.ly/pattern_codeblog
    👉 CODE REVIEW: bit.ly/review_codeblog
    👉 CLR via C#: bit.ly/clr_codeblog
    -----------
    Кстати, меня зовут Шванов Вадим, и я профессиональный .NET разработчик с 2011 года и автор этого канала CODE BLOG. Я рассказываю про IT технологии и веду абсолютно бесплатный курс по языку C# с нуля. В его рамках мы рассмотрим как базовый синтаксис языка C Sharp, так и его практическое применение и специальные технологии, такие как ASP .NET, .NET Core, ASP.NET MVC, Unity, WPF, структуры данных и алгоритмы, с#, dotnet, паттерны проектирования, информатика, csharp, программное обеспечение и многое другое. Для меня важно не только показать практическое применение языка си шарп, но и объяснить основную идею и базовые понятия Computer Science. В качестве основного инструмента разработки используется Visual Studio c# и проекты на Visual c#. Если вам нравятся такие каналы как хауди хо, айти борода, Soer или ExtremeCode, то здесь вам точно понравится.
    -----------
    #codeblog #программирование #csharp #ityoutubersru #программист #разработка

Komentáře • 179

  • @CODEBLOG
    @CODEBLOG  Před 5 lety +58

    На этом занятии мы рассмотрим основные парадигмы объектно-ориентированного программирования (инкапсуляция, наследование, полиморфизм, абстракция, посылка сообщений, повторное использование кода). Познакомимся с модификаторами доступа (private, protected, internal, public).
    4:20 Что такое объектно-ориентированное программирование (ООП)
    13:35 Инкапсуляция (принципы белого и черного ящика)
    18:10 Наследование
    22:40 Полиморфизм
    28:10 Абстракция
    31:35 Посылка сообщения (события)
    34:20 Повторное использование кода
    36:25 Практическая часть ООП в C#. Создание класса и экземпляра класса.
    38:00 Модификаторы доступа public, protected, private, internal
    50:00 Создание родительского класса и класса наследника
    56:37 Пример полиморфизма в коде
    1:03:40 Домашнее задание

  • @mastermaths4929
    @mastermaths4929 Před 3 lety +28

    Раньше я боялся ООП, думая что это чтото сложное, но сейчас я думаю, это очень полезная штука

  • @blackwolf4516
    @blackwolf4516 Před 3 lety +26

    "Person person = new Person();" - гениальный пример для новичка.

    • @angrystrawberry8206
      @angrystrawberry8206 Před 3 lety +16

      Хотя бы «Person instance = new Person()”, или еще более понятно «Person oleg = new Person()”. В свое время крайне путали такие примеры, которые были во всех видео.

    • @kalobyte
      @kalobyte Před 3 lety +1

      @Madman u
      чтобы отличать переменные от типов, то лучше добавлять myperson
      тогда будет понять, но это уже произвольное имя

    • @Vaboral
      @Vaboral Před 2 lety +2

      Вот вот, я по началу тоже не понимал что где, сплошные personы да arrayи

  • @BADPazific
    @BADPazific Před 2 lety +3

    Шикарный канал, объяснения очень толковые, спасибо за ваш труд

  • @ecosmile4212
    @ecosmile4212 Před 3 lety

    Наконец-то нашел что-то годное чтобы подтянуть знания, спасибо большое.

  • @HelloWorld-ln5cy
    @HelloWorld-ln5cy Před 4 lety +15

    Смотрю твои уроки по нескольку раз, чтобы вытащить с уроков по максимуму информации.
    Спасибо тебе огромное за уроки, они очень помогают и очень информативные, много нового узнал и это круто, удачи тебе

    • @CODEBLOG
      @CODEBLOG  Před 4 lety +3

      Очень рад, что уроки помогают ) тебе тоже удачи :)

  • @maksimchesnokov4381
    @maksimchesnokov4381 Před 4 lety +85

    У доктора есть имя и фамилия, но денег у доктора нет. Хмм а программирование очень похоже на реальную жизнь...

    • @CODEBLOG
      @CODEBLOG  Před 4 lety +9

      Интересное наблюдение, соглашусь )))

    • @alvoltta
      @alvoltta Před 4 lety +3

      @@CODEBLOG а если подписать на ивент - переехать в штаты деньги появятся?

  • @user-wt4sv2dd8o
    @user-wt4sv2dd8o Před 2 lety +1

    Спасибо огромное за видео! Это самое понятное обьяснение!

  • @user-hm8vy9ld9e
    @user-hm8vy9ld9e Před 3 lety

    Любимый блог. По несколько раз пересматриваю👍🦾

  • @grytskokonstantin1272
    @grytskokonstantin1272 Před 5 lety +11

    Дай Бог тебе здоровья, Человек

  • @eugenekrutoy1475
    @eugenekrutoy1475 Před 4 lety +1

    Просто супер!

  • @user-rx3fk1ud6x
    @user-rx3fk1ud6x Před 2 lety

    спасибо большое, давно не мог понят ооп но у тебя понял. Ты отлично объясняешь

  • @lakostyali2583
    @lakostyali2583 Před rokem

    Круто конечно, спасибо за твой труд

  • @marinaskosyreva9687
    @marinaskosyreva9687 Před 3 lety +5

    Спасибо вам большое. Учила Шарп сначала по SoloLearn, но там максимально скудно объясняют что к чему, и на сложных вещах начинаешь просто тонуть. А вот вы нереально понятно всё объясняете! Даже если это сложно, оно всё-равно понятно благодаря вам. Ещё раз спасибо :)

    • @DENDYTWOO
      @DENDYTWOO Před 3 lety +1

      Вы учили язык через телефонное приложение?)

    • @talisman1104
      @talisman1104 Před rokem

      Как успехи?

  • @user-hp8zp6kq5h
    @user-hp8zp6kq5h Před 3 lety

    Спасибо за видео!

  • @hackpulsar
    @hackpulsar Před 4 lety +1

    Спасибо за уроки)) ;)

  • @abdullakhzukhriddinov5654

    Спасибо за уроки )

    • @CODEBLOG
      @CODEBLOG  Před 5 lety

      Всегда пожалуйста )

  • @teambox2335
    @teambox2335 Před 5 lety

    CODE BLOG SUPER GOOD

  • @talisman1104
    @talisman1104 Před rokem +1

    1:01:04 немного стало ясно с этим полиморфизмом. Просто при объяснение складывается впечатление, что приводится к базовому классу тот же самый объект, а получается, что другой экземпляр объекта базового класса берёт данные наследника. Это что-то типа изменение указателей в си. Данные остались, но указатели меняются и соответственно меняется работа с этими указателями

  • @paveldukov
    @paveldukov Před 5 lety +2

    спасибо

  • @talisman1104
    @talisman1104 Před rokem +1

    13:48 только через год изучения программирования я нашёл точное определение инкапсуляции. Оказалось инкапсуляция это не сокрытие, а это механизм, которые объединяет данные и методы, которые работают с этими данными, в единый компонент, а также механизм обеспечивающий сокрытие этих данных. То есть инкапсуляция это не сокрытие. Инкапсуляция обеспечивает сокрытие

  • @andreypokrovskiy7197
    @andreypokrovskiy7197 Před 5 lety +1

    уроки супер! подсел конкретно )))

    • @CODEBLOG
      @CODEBLOG  Před 5 lety

      Очень рад, что нравится )

    • @lllraytoxlll
      @lllraytoxlll Před 3 lety

      @@CODEBLOG Все ЗБС, вот только не идеально, к сожалению. А вот... а-а-а... если бы .. А-а-а... убрать вот.... а-а-а-а.... пздц просто вымораживает. И не надо гнать, что мол - "уроки бесплатно и что вы хотели". Тут есть реклама и за неё человек получает деньги. Если есть реклама своего продукта, то это тоже какая - никакая прибыль. И про это я ничего не говорю - каждый зарабатывает как может, но прошу Вас - избавьтесь от этой привычки и избавьте зрителей от кровавых ушей. Лучше просто молча подумать секунды две каждые пять десять секунд, чем "акать". Вы сами-то попробуйте посмотреть свое видео на х1,5 или х2,0. Еще раз повторюсь - это не хейт и не начало холивара, ......а-а-а-а-а..... просто маленькая ....а-а-а-а-а... просьба.

  • @callpack96
    @callpack96 Před 4 lety +1

    Спасибо) все очень доступно и понятно

    • @CODEBLOG
      @CODEBLOG  Před 4 lety +1

      Всегда пожалуйста )

    • @Kitsikoo
      @Kitsikoo Před 4 lety

      Интересно что там тебе понятно? В этом видео самые вершки, без углублений.

    • @NaNaNaS_000
      @NaNaNaS_000 Před rokem

      @@Kitsikoo он же написал, что ВСЁ понятно

  • @Nipalable
    @Nipalable Před 4 lety +31

    52:10 Символично.
    "Но при этом, как видите, денег у доктора нет"

    • @alamji3566
      @alamji3566 Před 4 lety

      Я хотел это написать😂. Типо сейчас пандемия, и у доктаров денег нет( Because, Putin bad human

    • @AlSlTlElL
      @AlSlTlElL Před 4 lety

      Особенно на фоне коронавируса и не выплат врачам...

  • @user-yp9ps5cr3r
    @user-yp9ps5cr3r Před 2 lety +1

    у автора Большой Талант преподавателя.

    • @talisman1104
      @talisman1104 Před rokem

      Скорее не талант, а способность

  • @user-iw2zv9bp4o
    @user-iw2zv9bp4o Před 5 lety +18

    На 5:03 автор говорит: "сейчас, секундочку, кое-что поправлю" и сразу после этого идёт реклама))) совпадение?

    • @CODEBLOG
      @CODEBLOG  Před 5 lety +1

      ютуб сам выбирает момент, когда лучше ставить рекламу, видимо так совпало

    • @vladsol5575
      @vladsol5575 Před 5 lety

      есть же блокировщики рекламыи и нет проблем

    • @user-iw2zv9bp4o
      @user-iw2zv9bp4o Před 5 lety +13

      @@vladsol5575 да я по угару это написал, шутка, смеяться надо, ха ха делать надо. Я даже смайлик ) поставил. Все забейте все хер, не зашла шутка и ладно, я сам виноват: знал же я что пишу шутки программистам а значит надо было объявить переменную типа "шутка".
      joker reclam = "текст шутки"🤣🤣🤣

    • @aqztamp6744
      @aqztamp6744 Před 4 lety

      @@user-iw2zv9bp4o ))

  • @elenasulima5050
    @elenasulima5050 Před 3 lety +1

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

    • @talisman1104
      @talisman1104 Před rokem

      Так это наследование. Есть объект коробка и есть наследники механическая коробка и автомат. А полиморфизм это что? Что автомат можно рассмотреть как коробку, то есть привести к коробке? Использовать как коробку? Не понятно что

  • @Denis-nq1nc
    @Denis-nq1nc Před 5 lety +32

    на скорости 1.5 идеально смотреть,а так спасибо

    • @CODEBLOG
      @CODEBLOG  Před 5 lety +2

      Всегда пожалуйста )

    • @IIeJIbMeHb007
      @IIeJIbMeHb007 Před 4 lety +2

      когда знакомые вещи, то можно и х2 )

    • @lazymaths4749
      @lazymaths4749 Před 4 lety +1

      @@IIeJIbMeHb007 ага. я на х2 смотрю

    • @cliobro3890
      @cliobro3890 Před 4 lety +1

      @@lazymaths4749 Круто, давайте ВСЕ будем писать на какой скорости мы смотрим это же тааааак интересно...

    • @lazymaths4749
      @lazymaths4749 Před 4 lety

      @@cliobro3890 давайте! :)

  • @karibov1457
    @karibov1457 Před 4 lety

    По какой причине наследуемый класс у меня не наследует базовый. Красная черточка под наследуемым классом. В ошибке пишет что доступность базового класса ниже доступности класса наследуемого. В чем моя ошибка ?

  • @Mr.Epsilion
    @Mr.Epsilion Před 4 lety +3

    У вас тоже после его слов "- минуту, я сейчас что-то поправлю" включается реклама, ай красава, молодец :)

    • @CODEBLOG
      @CODEBLOG  Před 4 lety

      Это само ) CZcams проставляет рекламные вставки автоматом )

  • @sashkosashok
    @sashkosashok Před 5 lety +30

    Откинуть у бухгалтера все бухгалтерское и превратить его в человека.)

    • @omoloni
      @omoloni Před 4 lety

      тоже самое можно сказать про любого человека

  • @fnubee7135
    @fnubee7135 Před 3 lety +3

    Можно использовать короткую запись для назначения свойств Doctor doctor = new Doctor {FirstName = "Roman", LastName = "Sidorov", specialty = "Surgeon"};

  • @roduman
    @roduman Před 5 lety +4

    Спасибо Бро. Только ты смог мне объяснить что такое полиморфизм. Теперь меня уже не чем не удивишь ))) Готовлюсь к собеседованию. Хочу постепенно отказаться от фриланса в пользу работы в компании. И твои уроки как нельзя кстати. Алгоритмы есть в планах?

    • @CODEBLOG
      @CODEBLOG  Před 5 lety +1

      Сегодня начинаем структуры данных, а за ними алгоритмы

    • @Kitsikoo
      @Kitsikoo Před 4 lety

      Я удивлю. нИчем пишется слитно.

    • @gush5436
      @gush5436 Před 4 lety

      @@Kitsikoo
      ds05.infourok.ru/uploads/ex/0985/00006b2c-4281f29d/8/hello_html_m74906498.png
      Не за что

    • @NaNaNaS_000
      @NaNaNaS_000 Před rokem

      Как успехи?

  • @seoonlyRU
    @seoonlyRU Před 2 lety +1

    палец вверх за видео от СЕООНЛИ

  • @user-xf7iq9rj3c
    @user-xf7iq9rj3c Před 5 lety

    А принципы Solid-парадигмы ООП?и стоит ли про них рассказать,если на собеседовании спросят по ООП?

    • @CODEBLOG
      @CODEBLOG  Před 5 lety +3

      Скорее всего спросят. Про solid сейчас часто спрашивают даже на джуновых позициях, а на мидла 100%. при этом рекомендую обратить внимание именно на DI и single responsibility, именно на них обычно заостряют внимание

  • @oleksandrachuvakova8446
    @oleksandrachuvakova8446 Před 4 lety +1

    большое спасибо за уроки! у меня вопрос: если си шарп-это язык, построенный по принципу черного ящика почему на собеседованиях так часто спрашивают что под капотом у определенной функции?

    • @CODEBLOG
      @CODEBLOG  Před 4 lety

      Потому что это просто показатель того, насколько ты интересуешься тонкостями языка, а значит хочешь разбираться больше остальных и скорее всего будет неплохо работать )

    • @savannah633
      @savannah633 Před 4 lety +1

      в смысле "что под капотом" ?
      что реализует та или иная функция (метод) что ли? это спрашивают? )

    • @talisman1104
      @talisman1104 Před rokem

      Потому что это будет показывать твой уровень. Или блондинка которая села за руль и поехала или специалист водитель которые может использовать возможности автомобиля

  • @savannah633
    @savannah633 Před 4 lety +2

    почему-то в комментах нет ни одной домашки. Куда все делись ? На прошлом уроке домашек много.

  • @savannah633
    @savannah633 Před 4 lety +1

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

    • @CODEBLOG
      @CODEBLOG  Před 4 lety

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

  • @silvera_tv
    @silvera_tv Před rokem

    "Денег. У доктора. Нет.".. - прям как в жизни

  • @fireruslord
    @fireruslord Před 5 lety +12

    codeblog: я щас кое-что поправлю...
    *Вылазит реклама...*

    • @CODEBLOG
      @CODEBLOG  Před 4 lety +1

      Если что, я не специально ) так совпало )

    • @fireruslord
      @fireruslord Před 4 lety +1

      @@CODEBLOG ниче не знаю

    • @fireruslord
      @fireruslord Před 4 lety

      @@CODEBLOG а вообще спасибо за годные уроки)

    • @alkelov
      @alkelov Před 4 lety

      Хах у меня так же или это у всех так

    • @eugenekrutoy1475
      @eugenekrutoy1475 Před 4 lety

      @@alkelov у всех, но это прикольно.

  • @LAMM12345
    @LAMM12345 Před 4 lety

    58:02 "После этого мы можем привести обратно, т.е. мы можем сделать "вотакот" (здравствуй, Невский). А как это сформулировать грамотным языком? Что мы делаем? Т.е. что мы хотим сделать? Нужно для конспекта.
    Как результат звучит так, наверное: Невозможно неявное преобразование переменной типа *Person* в переменную типа *Doctor* указанным образом. Но для чего мы это делали? Что хотели этим показать?
    И еще. Там в подсказке помощника написано: "Не удается неявно преобразовать тип..."
    Хотя такая запись:
    Person p = d;
    Doctor dd = p;
    это же не преобразование, а неявное приведение. Преобразование это использование *Convert* .
    Что это "трудности перевода" или я не понял, что такое "преобразование" и что такое "приведение".
    Спасибо.

    • @CODEBLOG
      @CODEBLOG  Před 4 lety +2

      Я здесь не упомянул, но есть правильные наименования данных приведений. Восходящие преобразование или Upcast, когда мы может преобразовывать потомка к предку, может выполняться с помощью неявного приведения. Нисходящие преобразование или Downcast - корректное преобразование предка к потомку возможно при двух условиях, используется синтаксис явного приведения типов и переменная родительского типа за счет полиморфизма содержит фактический тип, к которому выполняется приведение

  • @gomeri6927
    @gomeri6927 Před 4 lety +1

    49:11 Зачем нужен тип decimal в Money ?

    • @CODEBLOG
      @CODEBLOG  Před 4 lety +2

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

    • @gomeri6927
      @gomeri6927 Před 4 lety +2

      @@CODEBLOG Спасибо ещё раз , вы меня часто выручаете

  • @talisman1104
    @talisman1104 Před rokem

    28:23 если инкапсуляцию и наследование можно выделить в отдельное правило, то полиморфизм является не отдельным правилом, а следствием правила наследования

  • @olegr7144
    @olegr7144 Před 4 lety

    Толково

  • @Overlordikify
    @Overlordikify Před 4 lety +1

    Икапсуляция и Наследование понял, а дальше грустно

  • @likeme8791
    @likeme8791 Před 4 lety

    Под полтарашку заходит огонь, это про скорость

    • @CODEBLOG
      @CODEBLOG  Před 4 lety +1

      На 2 даже лучше )

    • @likeme8791
      @likeme8791 Před 4 lety

      @@CODEBLOG сильно быстро, не улавливаешь суть

  • @8o881
    @8o881 Před 4 lety

    32:57 намёк понял))

  • @chazzkat6662
    @chazzkat6662 Před 4 lety +4

    Депутат != человек

  • @user-we9er1ve2y
    @user-we9er1ve2y Před 3 lety

    Как создать клас на Маке?

  • @Sanchezzasd
    @Sanchezzasd Před 4 lety

    без код-конвеншена глаза режет, но в целом отличный урок)

    • @CODEBLOG
      @CODEBLOG  Před 4 lety

      Ну да, согласен )

  • @user-mx6ky7hh7l
    @user-mx6ky7hh7l Před 3 lety

    22/03/21 смотрим

  • @minma123
    @minma123 Před rokem

    у меня нет сборки персон написано сделать ничего не могу и написано инструкции верхнего уровня недоступен в C# 7.3
    я все списал точь в точь проверил каждую точку но везде ошибки
    Я хочу делать игры но без понимания этого их не будет

    • @talisman1104
      @talisman1104 Před rokem

      Будет. Найдите другие каналы

  • @sparta.sparta
    @sparta.sparta Před 4 lety

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

    • @user-ew6vq2mm2u
      @user-ew6vq2mm2u Před 3 lety +1

      если мы, например, хотим создать массив людей

  • @yrikfirex3886
    @yrikfirex3886 Před 3 lety

    30:31 ржал пол часа

  • @evister
    @evister Před 3 lety

    Суть урока: Мы создали Романа!

  • @mrsolidol4954
    @mrsolidol4954 Před rokem

    34:55 - рантайм еррор

  • @Kitsikoo
    @Kitsikoo Před 4 lety

    Person p = d; И говорит что у 'p' пропала специализация :D Её там никогда и не было, алё :D

  • @nezdanchickkun
    @nezdanchickkun Před 2 lety

    25:40 Сказ о том, как из бухгалтера стать человеком)))

  • @MrAllexxannderr
    @MrAllexxannderr Před 4 lety +1

    Одному мне кажется, что все это ООП - бредни, которые придумал обкумаренный прогер? Я скорее всего нифига не понял, но, как мне кажется, всё это можно сделать в любом ЯП+БД без всей этой галиматьи. Уже третье видео смотрю, где пытаются объяснить что такое ООП. Одна вода изотерическая. :) Жалко лектора. Ему тоже не легко это рассказывать))). Спасибо за видео.

    • @CODEBLOG
      @CODEBLOG  Před 4 lety +2

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

  • @user-yk5yw6sn5p
    @user-yk5yw6sn5p Před 3 lety

    Привет с 2021

  • @andreymtrx8368
    @andreymtrx8368 Před 4 lety

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

    • @dmitriichurikov501
      @dmitriichurikov501 Před 4 lety +1

      Фраза "сокрытие данных" не объясняет в полной степени понятие инкапсуляции. Основная черта инкапсуляции заключается в том, что у компонента могут (и, скорее всего, будут) присутствовать данные и функии, присущие только ему одному. "Сокрытие" тут является следствием. Одна лишь фраза "сокрытие данных" без остального контекста - это, скорее, про ситуацию, когда ты строчку кода закомментил :)

    • @alexeytarala8483
      @alexeytarala8483 Před 4 lety

      @@dmitriichurikov501 это точно...

  • @talisman1104
    @talisman1104 Před rokem

    27:09 непонятно зачем из врача обратно делать человека, если он и так человек, так как наследуется от человека и имеет все свойства и методы человека. Тут или пример надо какой-то другой или помимо примера ещё указывать причину этого действия

    • @talisman1104
      @talisman1104 Před rokem

      С конкретными примерами стало ясно.

  • @deochan3099
    @deochan3099 Před 4 lety +2

    Аааааа, сложно(
    Надеюсь до меня со временем дойдёт...

  • @ami-code
    @ami-code Před 2 lety +1

    Блин, готовиться нужно. Чтоб не млеть, а говорить по делу. Конкретно из этого видео можно вычленить полезности на 20 минут. Остальное "ээээ", повторы и тд.

    • @talisman1104
      @talisman1104 Před rokem

      Да подготовка у автора хромает, но это не видео с информацией, а стрим лекция

  • @strimexify
    @strimexify Před 3 lety +1

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

    • @talisman1104
      @talisman1104 Před rokem

      На практике, как понимаю, нет чётких границ между правилами, а где-то они и нарушаются, поэтому для понимания подойдут и такие примеры

  • @KycokFt
    @KycokFt Před 2 lety

    А где шесть парадигм то?

    • @talisman1104
      @talisman1104 Před rokem

      Инкапсуляция, наследование, полиморфизм, абстракция, посылка сообщений, повторное использование кода

  • @Kitsikoo
    @Kitsikoo Před 5 lety +2

    ООП до методов? O_o

    • @CODEBLOG
      @CODEBLOG  Před 5 lety +1

      Сначала нужно рассмотреть саму парадигму ООП, а потом уже концентрироваться на деталях )

    • @Kitsikoo
      @Kitsikoo Před 5 lety +6

      @@CODEBLOG так ведь методы это функциональное программирование :)
      Их можно было для простоты понимания пройти вначале, не забивая голову ООП)
      Ну да ладно, дело хозяйское :)

  • @wolfKG1234
    @wolfKG1234 Před 5 lety +1

    Наследование уже подразумевает повторное использование кода, зачем его выводить в отдельную парадигму?
    И насчёт Подписки на событие тоже не совсем понятно. Это больше похоже на один из способов конструирования системы(взаимодействие разных "модулей/сервисов"), но не на парадигму ООП.
    Объясни поподробнее.

    • @CODEBLOG
      @CODEBLOG  Před 5 lety +1

      Привет. Давай по порядку. Повторное использование - это не только про наследование. Это еще может быть и использование целых библиотек, фреймворков и т.д. По сути это тот же DRY - Не пиши еще раз то, что уже было написано. Плюс пиши код так, чтобы его можно было повторно использовать.
      По поводу посылки сообщения действительно такое, поэтому я и сказал, что эти две парадигрмы далеко не сильно в ходу ) наследование тоже можно представить как способ конструирования системы. Подразумевается использование событий и обработчиков событий. Если подписан на событие - всегда должен быть обработчик

    • @talisman1104
      @talisman1104 Před rokem

      Подписка используется для оптимизации в играх. Когда не нужно создавать экземпляры класса, чтобы следить за изменениями этого класса, а делается подписка на события и тогда при получении события идёт обработка его

  • @evgeniyt.2858
    @evgeniyt.2858 Před rokem

    Это не функциональное программирование, в процедурное. Функциональное это про карринг, лямбда-исчисление, чистота функции, etc. примеры яп: lisp, haskell

  • @user-jc3mp6ot9s
    @user-jc3mp6ot9s Před 4 lety

    Инкапсуляция связывает методы с данными. И она лишь ОБЕСПЕЧИВАЕТ сокрытие, а не является им

    • @CODEBLOG
      @CODEBLOG  Před 4 lety +3

      В объектно-ориентированном языке как C# инкапсуляция - это именно сокрытие, потому что связывание и так подразумевается по умолчанию. Даже в главнейшей книге любого .net-разработчика CLR via C# Джеффри Рихтер писал, что инкапсуляция - это сокрытие. В "правильном" ООП (привет, ExtremeCode) действительно это связывание + сокрытие, но здесь сокрытие есть по умолчанию )

  • @dancha6404
    @dancha6404 Před 4 lety

    и на словах " денег у доктора нет" где-то всплакнул один доктор)) но зря get и set не затронули у многих наверное из-за этого вопрос а на кой хер тогда privat.

  • @k1aldgames275
    @k1aldgames275 Před 3 lety +1

    Слишком длинные видео. Было бы лучше если бы темы разделялись и на каждую тему делали отдельные короткие видео(10-20 минут)..

    • @talisman1104
      @talisman1104 Před rokem

      Во-1, это не видео, а записи стримов, то есть лекций автора для аудитории. Даже в этом случае автор пытается разделить такой большой стрим на две части: теорию и практику.
      Во-2, судя по сообщениям из других стримов, автор планировал в будущем нарезать из этих записей короткие видео, по типу как вы предлагаете. Но походу как автор переехал он забросил этот канал

  • @talisman1104
    @talisman1104 Před rokem

    22:47 и у автора тоже

  • @danielsilichshev6880
    @danielsilichshev6880 Před 4 lety

    Правильно я понимаю, что полиморфизм - это приведение дочернего класса к родительскому?

    • @123474661
      @123474661 Před 4 lety

      И не только ,но и в переопределении методов родительского класса

  • @MiFix-sh7el
    @MiFix-sh7el Před 3 měsíci

    единственное что бесит, это вот эта эээ после каждого слова

  • @user-zp7yf7rr9d
    @user-zp7yf7rr9d Před rokem

    Принцип dry преполагает создание отдельных методов вместо участков одинакового кода. Не более.

  • @user-vo6ku7ui1j
    @user-vo6ku7ui1j Před 2 lety

    сколько рекламы в видео напихал

  • @user-gl6fj9sm5v
    @user-gl6fj9sm5v Před 3 lety

    почему я вот смотрю уже 8-й урок и ничего не понимаю?

    • @endi9204
      @endi9204 Před 3 lety

      Что-то понял?Как успехи,начал кодить,я вот уже си шарпом занимаюсь пол года до сих пор нечего непонимаю,но я не сдаюсь у меня все потихоньку выходит у меня проблема с циклами не сдавайсь вместе со мной)

    • @darman5820
      @darman5820 Před 3 lety

      Практикуйся больше. Голая теория в голову вообще не входит

    • @darman5820
      @darman5820 Před 3 lety

      @@endi9204 ты за полгода только до циклов дошел?

    • @endi9204
      @endi9204 Před 3 lety

      @@darman5820 Я просто постоянно меняю ресурсы для обучения,решил уже плотно на одном остановится,но все равно как-то плохо с программированием

    • @darman5820
      @darman5820 Před 3 lety

      @@endi9204 это как-то совсем плохо. Я тебе бы порекомендовал курс скиллбокс в интернете слитый скачать, там видеокурсы и задания в конце каждой темы

  • @igorlyovin1360
    @igorlyovin1360 Před 4 lety

    Дизлайки ставит Роман Сакутин

    • @CODEBLOG
      @CODEBLOG  Před 4 lety +1

      Кто это и почему именно он? ))

    • @igorlyovin1360
      @igorlyovin1360 Před 4 lety +1

      У данного человека (он ютубер если что и программирует на C#) есть одна плохая черта ругать разные источники, обучающие языку C# под предлогом "Все дураки, покупайте мой курс"

  • @I-PixALbI4-I
    @I-PixALbI4-I Před 4 lety +1

    Да шо ж нихрена не понятно(

  • @Shadirtuoso
    @Shadirtuoso Před 5 lety +4

    Всё конечно хорошо, но эээ через каждые 2 слова...

    • @CODEBLOG
      @CODEBLOG  Před 5 lety +5

      Есть такой косяк ) но я стараюсь отучить себя от этого )

  • @mikllll
    @mikllll Před 4 lety

    В какой момент доктор стал человеком? Нихера не понятно.

    • @123474661
      @123474661 Před 4 lety

      В момент передачи доктора в параметры или присвоении переменной тип человек

  • @user-en4mh4vo7c
    @user-en4mh4vo7c Před 4 lety

    слушать невозможно это заунывное повествование(( Затошнило

  • @OlgaSl
    @OlgaSl Před rokem

    Капец, реклама через каждые 2 минуты!!! Смотреть не возможно!

  • @user-zp7yf7rr9d
    @user-zp7yf7rr9d Před rokem

    Ох ребятки. При всём моём уважении, НО:
    Инкапсуляция - это не только лишь сокрытие, тезис шире этой возможности.
    Наследование - пример кастыльный, но верный.
    Полиморфизм - это разные сигнатуры и/или разные реализации одноимённых методов родственных классов. Это не упкаст и давнкаст как таковые, хоть именно в этих процессах полиморфизм неофитам начинает взрывать мозги.

    • @talisman1104
      @talisman1104 Před rokem +1

      По мне ваше объяснение взрывает мозг больше, чем объяснение стримера. Можно простыми словами?

  • @fmycry1
    @fmycry1 Před 3 lety

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

    • @crazygloom1391
      @crazygloom1391 Před 2 lety

      Вот я дошёл до этого урока и не черта непонятно)

    • @talisman1104
      @talisman1104 Před rokem

      Как успехи? Как новичок могу сказать, что желания бросить нет, а есть вот это "ничего не понятно, но пойдём дальше". С теорией у автора слабовато или с пониманием теории, потому что если человек не может понятно пересказать, то это он недоконца понимает предмет

  • @Vasily_Alekseyevich
    @Vasily_Alekseyevich Před 4 lety

    аааа... ээээ...