Инкапсуляция за 1 минуту! [C#]

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ต.ค. 2024
  • Инкапсуляция простым и понятным языком
    Салют, ты на канале Night Train Code 😎
    Что такое инкапсулирование в ООП C#?
    • 🖤 GitHub: github.com/Mee...
    • 🖤 VK: nighttr...
    • 🖤 Telegram: t.me/nighttrai...
    • 🖤 Instagram: / the.meps_
    Поддержка канала:
    www.donational...

ความคิดเห็น • 42

  • @РоманКривжа
    @РоманКривжа 3 ปีที่แล้ว +19

    Лучшее объяснение, что я видел.

  • @mizrailmisha7902
    @mizrailmisha7902 3 ปีที่แล้ว +5

    Даешь обучение за 30 сек. Спасибо за отличные видео

    • @NightTrainCode
      @NightTrainCode  3 ปีที่แล้ว

      Спасибо и на здоровье)

  • @gameviewer5693
    @gameviewer5693 3 ปีที่แล้ว +6

    Про другие принципы тоже будет очень интересно послушать)

  • @ДарьяВознюк-н2ю
    @ДарьяВознюк-н2ю 8 หลายเดือนก่อน +1

    Уже на первых секундах поставила лайк за музыку :D

  • @GGamess
    @GGamess ปีที่แล้ว +1

    взял себе для собеса пример. Спасибо

  • @integer_dev
    @integer_dev 3 ปีที่แล้ว +1

    Чтобы баланс не был отрицательным, существует fcl тип uint. Но в целом, да, ты прав)

  • @qrthack
    @qrthack 7 หลายเดือนก่อน

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

    • @princessmary5556
      @princessmary5556 4 หลายเดือนก่อน

      Нет. Инкапсуляция - это не сокрытие данных. А кроме того, инкапсуляция вообще не имеет привязки к ООП, и широко практикуется, например, в языке си, где вообще нет никаких классов.

  • @grimseal
    @grimseal 3 ปีที่แล้ว +2

    Интересное объяснение и великолепная подача.
    Но разве инкапсуляция это не про связывание данных и методов работы с ними в одном объекте?
    Как раз модификаторы доступа + инкапсуляция позволяют реализовать защиту состояния объекта и согласованность его данных, а не одна лишь она.

    • @NightTrainCode
      @NightTrainCode  3 ปีที่แล้ว +1

      Это всё в совокупности и речь о том, что одного лишь private недостаточно

    • @princessmary5556
      @princessmary5556 ปีที่แล้ว

      Вы спрашиваете: *разве инкапсуляция это не про связывание данных и методов работы с ними в одном объекте?* Нет. Связывание данных и методов работы с ними - это про классы, а не про инкапсуляцию.

  • @dronsan-unity7302
    @dronsan-unity7302 ปีที่แล้ว

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

    • @NightTrainCode
      @NightTrainCode  ปีที่แล้ว

      Ну 0 монет представить можно, а -1 уже как-то не очень :)

    • @dronsan-unity7302
      @dronsan-unity7302 ปีที่แล้ว

      @@NightTrainCode ваш кошелек пополнился на 0 рублей,. - Что за золотой человек мне на телефон целых 0 рублей скинул!)))

  • @denzeroneYT
    @denzeroneYT 11 หลายเดือนก่อน

    0:37, странный миф, окей, сделаем мы поля приватными, а как дальше с ними взаимодействовать? Понятно что на этом не всё, ведь сделав программу на публичных модификаторах, после чего, познакомившись с инкапсуляцией, просто сменив поля на приватные, ничего не получиться, в некоторых моментах могут появиться ошибки, что вы больше не можете так просто выводить данные и т. д.

  • @inatesi
    @inatesi ปีที่แล้ว

    ахахаха хорош)

  • @ПавелЮ-р5э
    @ПавелЮ-р5э 3 ปีที่แล้ว

    топ

  • @СлаваДобровольский-ъ3з
    @СлаваДобровольский-ъ3з 2 ปีที่แล้ว +4

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

    • @princessmary5556
      @princessmary5556 ปีที่แล้ว

      Объединение данных и функций их обработки, это - концепт класса. Это - не инкапсуляция.

    • @СлаваДобровольский-ъ3з
      @СлаваДобровольский-ъ3з ปีที่แล้ว

      @@princessmary5556 Получи меня, ага, я ведь всего лишь 20 лет в профессии.

    • @princessmary5556
      @princessmary5556 ปีที่แล้ว +2

      @@СлаваДобровольский-ъ3з Вы пишете: *Получи меня* И нафига мне вас "получать" ? Если вы за 20 лет так и не вразумели определение понятия "инкапсуляция", то "получать" вас уже бесполезно.

    • @konneuktrevor9295
      @konneuktrevor9295 10 หลายเดือนก่อน

      @@СлаваДобровольский-ъ3з О, ссылка на авторитет. Ещё скажите, что у вас высшее образование, тогда точно будете правы.

    • @princessmary5556
      @princessmary5556 4 หลายเดือนก่อน

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

  • @ThePirateHistory
    @ThePirateHistory 3 ปีที่แล้ว +1

    Инкапсуляция это набор методов' при котором объект никогда не будет в не правильном состоянии

    • @NightTrainCode
      @NightTrainCode  3 ปีที่แล้ว +2

      Как одно из. Это в принципе такое построение кода, при котором ничего не сломается и жизнь будет в кайф)

    • @princessmary5556
      @princessmary5556 ปีที่แล้ว

      Вы путаете "инкапсуляцию" с понятием "инвариант". Инвариант - это не инкапсуляция.

  • @incredibleBY
    @incredibleBY 11 หลายเดือนก่อน

    абсолютно не верно. Это крайне поверхностное понимание и более того неверное..
    В приведенном коде 1 уже есть инкапсуляция. Внутреннее состояние обьекта уже защищено механизмом языка, а данные и код обьединенеы в некоторую абстракцию, капсулу, в данном случае class(но это не обязательно должен быть class, может быть и сборка и метод и солюшен), так же имеется возможность использования этого обьекта посредством публичного интерфейса .Все.
    . Оно, внутреннее состояние, может быть не защещено с точки зрения требований описаных в коде 2.Но откуда мы знаем смотря на код 1, что у нас есть требования 2? Ниоткуда. Логика может быть такая, что баланс может быть отрицательный.
    Преобразование кода 1 в код 2 - это всего лишь детализация. Не более. Обьект и в коде 1 обладал инкапсуляцией.
    В языке с# инкапсулия - это И обьединение даннвх и методов в единой абстракции И сокрытие деталей реализации.
    Есть языки ООП в котором это либо то, либо то, либо и то и то. В зависемости от конретного языка.

    • @NightTrainCode
      @NightTrainCode  11 หลายเดือนก่อน

      Прямо абсолютно?)

    • @incredibleBY
      @incredibleBY 11 หลายเดือนก่อน

      ​@@NightTrainCodeпрям абсолютно. Рекомендую почитать хотя бы англоязычную википедию, статью "инкапсуляция в ООП". там есть множество ссылок

    • @princessmary5556
      @princessmary5556 4 หลายเดือนก่อน

      Инкапсуляция вообще не имеет жесткой привязки к ООП, и широко практикуется, например, в языке си.

  • @vladislavyurevich2247
    @vladislavyurevich2247 3 ปีที่แล้ว

    Если быть точным, то за 1 минуту 7 секунд

  • @cgdranser
    @cgdranser 11 หลายเดือนก่อน

    Ты серьезно? Ты эту задачу мог решить в пару строк, а накодил с десяток.
    Тут либо пример плохой, либо автор сам не понимает что такое инкапсуляция.
    А вообще, инкапсуляция это сокрытие 😂😂😂😂

    • @NightTrainCode
      @NightTrainCode  11 หลายเดือนก่อน

      Инкапсуляция - это не только сокрытие, но и способ организации корректного поведения через методы :)
      Чтобы сущность вела себя так, как это задумывалось при разработке. То есть, по Вашей логике, в кошельке может быть отрицательное количество денег и это корректно?

    • @konneuktrevor9295
      @konneuktrevor9295 10 หลายเดือนก่อน

      Сокрытие - это лишь метод реализации инкапсуляции.

    • @princessmary5556
      @princessmary5556 4 หลายเดือนก่อน

      Вы пишете: *А вообще, инкапсуляция это сокрытие* Чушь.

    • @princessmary5556
      @princessmary5556 4 หลายเดือนก่อน

      @@konneuktrevor9295 Вы пишете: *Сокрытие - это лишь метод реализации инкапсуляции* Инкапсуляция может быть реализована посредством сокрытия, но может быть реализована и другими способами. Например: изоляция деталей при помощи private секции класса.