Инкапсуляция за 1 минуту! [C#]
ฝัง
- เผยแพร่เมื่อ 4 ต.ค. 2024
- Инкапсуляция простым и понятным языком
Салют, ты на канале Night Train Code 😎
Что такое инкапсулирование в ООП C#?
• 🖤 GitHub: github.com/Mee...
• 🖤 VK: nighttr...
• 🖤 Telegram: t.me/nighttrai...
• 🖤 Instagram: / the.meps_
Поддержка канала:
www.donational...
Лучшее объяснение, что я видел.
Спасибо! 😎
Даешь обучение за 30 сек. Спасибо за отличные видео
Спасибо и на здоровье)
Про другие принципы тоже будет очень интересно послушать)
Беру на заметку)
Уже на первых секундах поставила лайк за музыку :D
взял себе для собеса пример. Спасибо
:)
Чтобы баланс не был отрицательным, существует fcl тип uint. Но в целом, да, ты прав)
Скажите пожалуйста правильно ли я понял)
Инкапсуляция обеспечивает три правила:
1. Данные (поля), и методы которые работают с этими данными, находятся в одном классе.
2. Сокрытие данных: данные (поля) должны быть сокрыты от внешнего использования т.е. поля должны быть приватными.
3. Методы, которые работают с данными (полями), защищают от неправильного использования.
Нет. Инкапсуляция - это не сокрытие данных. А кроме того, инкапсуляция вообще не имеет привязки к ООП, и широко практикуется, например, в языке си, где вообще нет никаких классов.
Интересное объяснение и великолепная подача.
Но разве инкапсуляция это не про связывание данных и методов работы с ними в одном объекте?
Как раз модификаторы доступа + инкапсуляция позволяют реализовать защиту состояния объекта и согласованность его данных, а не одна лишь она.
Это всё в совокупности и речь о том, что одного лишь private недостаточно
Вы спрашиваете: *разве инкапсуляция это не про связывание данных и методов работы с ними в одном объекте?* Нет. Связывание данных и методов работы с ними - это про классы, а не про инкапсуляцию.
при снятии и пополнений денег проверку бы сделал не только меньше нуля, а меньше и равно нулю. А то получается, что по 0 добавляешь, смысла от этой операции нет, да и лишнее действие
Ну 0 монет представить можно, а -1 уже как-то не очень :)
@@NightTrainCode ваш кошелек пополнился на 0 рублей,. - Что за золотой человек мне на телефон целых 0 рублей скинул!)))
0:37, странный миф, окей, сделаем мы поля приватными, а как дальше с ними взаимодействовать? Понятно что на этом не всё, ведь сделав программу на публичных модификаторах, после чего, познакомившись с инкапсуляцией, просто сменив поля на приватные, ничего не получиться, в некоторых моментах могут появиться ошибки, что вы больше не можете так просто выводить данные и т. д.
ахахаха хорош)
топ
Спасибо!
Инкапсуляция -это объединение данных и функций обработки этих данных, с возможностью ограничения доступа к ним в одной сущности, называемой объект. Ограничивать формулировку инкапсуляции одной лишь возможностью ограничения доступа - идиотизм. Примерно как сказать "собака - это правое ухо". Грустно за подрастающее поколение.
Объединение данных и функций их обработки, это - концепт класса. Это - не инкапсуляция.
@@princessmary5556 Получи меня, ага, я ведь всего лишь 20 лет в профессии.
@@СлаваДобровольский-ъ3з Вы пишете: *Получи меня* И нафига мне вас "получать" ? Если вы за 20 лет так и не вразумели определение понятия "инкапсуляция", то "получать" вас уже бесполезно.
@@СлаваДобровольский-ъ3з О, ссылка на авторитет. Ещё скажите, что у вас высшее образование, тогда точно будете правы.
Вы пишете: *Инкапсуляция -это объединение данных и функций обработки этих данных, с возможностью ограничения доступа к ним в одной сущности, называемой объект* Вы описали концепцию класса, а не инкапсуляции. Инкапсуляция не имеет жесткой привязки к ооп, и практикуется, например, в процедурном си, где вообще нет никаких классов.
Инкапсуляция это набор методов' при котором объект никогда не будет в не правильном состоянии
Как одно из. Это в принципе такое построение кода, при котором ничего не сломается и жизнь будет в кайф)
Вы путаете "инкапсуляцию" с понятием "инвариант". Инвариант - это не инкапсуляция.
абсолютно не верно. Это крайне поверхностное понимание и более того неверное..
В приведенном коде 1 уже есть инкапсуляция. Внутреннее состояние обьекта уже защищено механизмом языка, а данные и код обьединенеы в некоторую абстракцию, капсулу, в данном случае class(но это не обязательно должен быть class, может быть и сборка и метод и солюшен), так же имеется возможность использования этого обьекта посредством публичного интерфейса .Все.
. Оно, внутреннее состояние, может быть не защещено с точки зрения требований описаных в коде 2.Но откуда мы знаем смотря на код 1, что у нас есть требования 2? Ниоткуда. Логика может быть такая, что баланс может быть отрицательный.
Преобразование кода 1 в код 2 - это всего лишь детализация. Не более. Обьект и в коде 1 обладал инкапсуляцией.
В языке с# инкапсулия - это И обьединение даннвх и методов в единой абстракции И сокрытие деталей реализации.
Есть языки ООП в котором это либо то, либо то, либо и то и то. В зависемости от конретного языка.
Прямо абсолютно?)
@@NightTrainCodeпрям абсолютно. Рекомендую почитать хотя бы англоязычную википедию, статью "инкапсуляция в ООП". там есть множество ссылок
Инкапсуляция вообще не имеет жесткой привязки к ООП, и широко практикуется, например, в языке си.
Если быть точным, то за 1 минуту 7 секунд
Я всех обманул 🤡
Ты серьезно? Ты эту задачу мог решить в пару строк, а накодил с десяток.
Тут либо пример плохой, либо автор сам не понимает что такое инкапсуляция.
А вообще, инкапсуляция это сокрытие 😂😂😂😂
Инкапсуляция - это не только сокрытие, но и способ организации корректного поведения через методы :)
Чтобы сущность вела себя так, как это задумывалось при разработке. То есть, по Вашей логике, в кошельке может быть отрицательное количество денег и это корректно?
Сокрытие - это лишь метод реализации инкапсуляции.
Вы пишете: *А вообще, инкапсуляция это сокрытие* Чушь.
@@konneuktrevor9295 Вы пишете: *Сокрытие - это лишь метод реализации инкапсуляции* Инкапсуляция может быть реализована посредством сокрытия, но может быть реализована и другими способами. Например: изоляция деталей при помощи private секции класса.