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

  Рет қаралды 5,912

Night Train Code

Night Train Code

2 жыл бұрын

Инкапсуляция простым и понятным языком
Салют, ты на канале Night Train Code 😎
Что такое инкапсулирование в ООП C#?
• 🖤 GitHub: github.com/MeeXaSiK
• 🖤 VK: nighttraincode
• 🖤 Telegram: t.me/nighttraincode
• 🖤 Instagram: / the.meps_
Поддержка канала:
www.donationalerts.com/r/nigh...

Пікірлер: 42
@user-su7yd6og7y
@user-su7yd6og7y 2 жыл бұрын
Лучшее объяснение, что я видел.
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Спасибо! 😎
@gameviewer5693
@gameviewer5693 2 жыл бұрын
Про другие принципы тоже будет очень интересно послушать)
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Беру на заметку)
@mizrailmisha7902
@mizrailmisha7902 2 жыл бұрын
Даешь обучение за 30 сек. Спасибо за отличные видео
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Спасибо и на здоровье)
@user-lq7ff3gx2k
@user-lq7ff3gx2k 5 ай бұрын
Уже на первых секундах поставила лайк за музыку :D
@GGamess
@GGamess Жыл бұрын
взял себе для собеса пример. Спасибо
@NightTrainCode
@NightTrainCode Жыл бұрын
:)
@inatesi
@inatesi Жыл бұрын
ахахаха хорош)
@integer_dev
@integer_dev 2 жыл бұрын
Чтобы баланс не был отрицательным, существует fcl тип uint. Но в целом, да, ты прав)
@user-fw4zu1kd2z
@user-fw4zu1kd2z 2 жыл бұрын
топ
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Спасибо!
@qrthack3233
@qrthack3233 4 ай бұрын
Скажите пожалуйста правильно ли я понял) Инкапсуляция обеспечивает три правила: 1. Данные (поля), и методы которые работают с этими данными, находятся в одном классе. 2. Сокрытие данных: данные (поля) должны быть сокрыты от внешнего использования т.е. поля должны быть приватными. 3. Методы, которые работают с данными (полями), защищают от неправильного использования.
@princessmary5556
@princessmary5556 Ай бұрын
Нет. Инкапсуляция - это не сокрытие данных. А кроме того, инкапсуляция вообще не имеет привязки к ООП, и широко практикуется, например, в языке си, где вообще нет никаких классов.
@grimseal
@grimseal 2 жыл бұрын
Интересное объяснение и великолепная подача. Но разве инкапсуляция это не про связывание данных и методов работы с ними в одном объекте? Как раз модификаторы доступа + инкапсуляция позволяют реализовать защиту состояния объекта и согласованность его данных, а не одна лишь она.
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Это всё в совокупности и речь о том, что одного лишь private недостаточно
@princessmary5556
@princessmary5556 Жыл бұрын
Вы спрашиваете: *разве инкапсуляция это не про связывание данных и методов работы с ними в одном объекте?* Нет. Связывание данных и методов работы с ними - это про классы, а не про инкапсуляцию.
@dronsan-unity7302
@dronsan-unity7302 Жыл бұрын
при снятии и пополнений денег проверку бы сделал не только меньше нуля, а меньше и равно нулю. А то получается, что по 0 добавляешь, смысла от этой операции нет, да и лишнее действие
@NightTrainCode
@NightTrainCode Жыл бұрын
Ну 0 монет представить можно, а -1 уже как-то не очень :)
@dronsan-unity7302
@dronsan-unity7302 Жыл бұрын
@@NightTrainCode ваш кошелек пополнился на 0 рублей,. - Что за золотой человек мне на телефон целых 0 рублей скинул!)))
@denzeroneYT
@denzeroneYT 8 ай бұрын
0:37, странный миф, окей, сделаем мы поля приватными, а как дальше с ними взаимодействовать? Понятно что на этом не всё, ведь сделав программу на публичных модификаторах, после чего, познакомившись с инкапсуляцией, просто сменив поля на приватные, ничего не получиться, в некоторых моментах могут появиться ошибки, что вы больше не можете так просто выводить данные и т. д.
@vladislavyurevich2247
@vladislavyurevich2247 2 жыл бұрын
Если быть точным, то за 1 минуту 7 секунд
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Я всех обманул 🤡
@ThePirateHistory
@ThePirateHistory 2 жыл бұрын
Инкапсуляция это набор методов' при котором объект никогда не будет в не правильном состоянии
@NightTrainCode
@NightTrainCode 2 жыл бұрын
Как одно из. Это в принципе такое построение кода, при котором ничего не сломается и жизнь будет в кайф)
@princessmary5556
@princessmary5556 Жыл бұрын
Вы путаете "инкапсуляцию" с понятием "инвариант". Инвариант - это не инкапсуляция.
@user-qe2tx7ox1g
@user-qe2tx7ox1g 2 жыл бұрын
Инкапсуляция -это объединение данных и функций обработки этих данных, с возможностью ограничения доступа к ним в одной сущности, называемой объект. Ограничивать формулировку инкапсуляции одной лишь возможностью ограничения доступа - идиотизм. Примерно как сказать "собака - это правое ухо". Грустно за подрастающее поколение.
@princessmary5556
@princessmary5556 Жыл бұрын
Объединение данных и функций их обработки, это - концепт класса. Это - не инкапсуляция.
@user-qe2tx7ox1g
@user-qe2tx7ox1g Жыл бұрын
@@princessmary5556 Получи меня, ага, я ведь всего лишь 20 лет в профессии.
@princessmary5556
@princessmary5556 Жыл бұрын
@@user-qe2tx7ox1g Вы пишете: *Получи меня* И нафига мне вас "получать" ? Если вы за 20 лет так и не вразумели определение понятия "инкапсуляция", то "получать" вас уже бесполезно.
@konneuktrevor9295
@konneuktrevor9295 7 ай бұрын
@@user-qe2tx7ox1g О, ссылка на авторитет. Ещё скажите, что у вас высшее образование, тогда точно будете правы.
@princessmary5556
@princessmary5556 Ай бұрын
Вы пишете: *Инкапсуляция -это объединение данных и функций обработки этих данных, с возможностью ограничения доступа к ним в одной сущности, называемой объект* Вы описали концепцию класса, а не инкапсуляции. Инкапсуляция не имеет жесткой привязки к ооп, и практикуется, например, в процедурном си, где вообще нет никаких классов.
@incredibleBY
@incredibleBY 8 ай бұрын
абсолютно не верно. Это крайне поверхностное понимание и более того неверное.. В приведенном коде 1 уже есть инкапсуляция. Внутреннее состояние обьекта уже защищено механизмом языка, а данные и код обьединенеы в некоторую абстракцию, капсулу, в данном случае class(но это не обязательно должен быть class, может быть и сборка и метод и солюшен), так же имеется возможность использования этого обьекта посредством публичного интерфейса .Все. . Оно, внутреннее состояние, может быть не защещено с точки зрения требований описаных в коде 2.Но откуда мы знаем смотря на код 1, что у нас есть требования 2? Ниоткуда. Логика может быть такая, что баланс может быть отрицательный. Преобразование кода 1 в код 2 - это всего лишь детализация. Не более. Обьект и в коде 1 обладал инкапсуляцией. В языке с# инкапсулия - это И обьединение даннвх и методов в единой абстракции И сокрытие деталей реализации. Есть языки ООП в котором это либо то, либо то, либо и то и то. В зависемости от конретного языка.
@NightTrainCode
@NightTrainCode 8 ай бұрын
Прямо абсолютно?)
@incredibleBY
@incredibleBY 8 ай бұрын
​@@NightTrainCodeпрям абсолютно. Рекомендую почитать хотя бы англоязычную википедию, статью "инкапсуляция в ООП". там есть множество ссылок
@princessmary5556
@princessmary5556 Ай бұрын
Инкапсуляция вообще не имеет жесткой привязки к ООП, и широко практикуется, например, в языке си.
@cgdranser
@cgdranser 8 ай бұрын
Ты серьезно? Ты эту задачу мог решить в пару строк, а накодил с десяток. Тут либо пример плохой, либо автор сам не понимает что такое инкапсуляция. А вообще, инкапсуляция это сокрытие 😂😂😂😂
@NightTrainCode
@NightTrainCode 8 ай бұрын
Инкапсуляция - это не только сокрытие, но и способ организации корректного поведения через методы :) Чтобы сущность вела себя так, как это задумывалось при разработке. То есть, по Вашей логике, в кошельке может быть отрицательное количество денег и это корректно?
@konneuktrevor9295
@konneuktrevor9295 7 ай бұрын
Сокрытие - это лишь метод реализации инкапсуляции.
@princessmary5556
@princessmary5556 Ай бұрын
Вы пишете: *А вообще, инкапсуляция это сокрытие* Чушь.
@princessmary5556
@princessmary5556 Ай бұрын
@@konneuktrevor9295 Вы пишете: *Сокрытие - это лишь метод реализации инкапсуляции* Инкапсуляция может быть реализована посредством сокрытия, но может быть реализована и другими способами. Например: изоляция деталей при помощи private секции класса.
World’s Deadliest Obstacle Course!
28:25
MrBeast
Рет қаралды 151 МЛН
WHO DO I LOVE MOST?
00:22
dednahype
Рет қаралды 79 МЛН
Survival skills: A great idea with duct tape #survival #lifehacks #camping
00:27
버블티로 체감되는 요즘 물가
00:16
진영민yeongmin
Рет қаралды 97 МЛН
Фишки в C# и Unity, о которых ты не слышал!
19:02
Подробный урок по Zenject в Unity. DI Container
17:11
Night Train Code
Рет қаралды 34 М.
THE MOST FREQUENT MISCONCEPTIONS ABOUT OOP
19:37
ExtremeCode
Рет қаралды 544 М.
Оптимизация игры на Unity. Паттерн Observer
7:31
Ё*кий полиморфизм
9:47
ExtremeCode
Рет қаралды 283 М.
Большие проблемы наследования в ООП
10:51
World’s Deadliest Obstacle Course!
28:25
MrBeast
Рет қаралды 151 МЛН