В чём разница между инкапсуляцией и сокрытием ?

23 ответов

19 просмотров
Fuhrerbox 360-[Xbox 360] Автор вопроса

Я не понял просто

Fuhrerbox 360-[Xbox 360] Автор вопроса

тип я понял, что сокрытие вроде часть инкапсуляции, но что там ещё есть я не вдуплил из определения и примера

Fuhrerbox 360 [Xbox 360]
тип я понял, что сокрытие вроде часть инкапсуляции...

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

Fuhrerbox 360-[Xbox 360] Автор вопроса
Никита
Инкапсуляция это например публичные свойства, ты м...

Ещё интересная интерпретация - инкапсуляция - невозможность сломать класс извне

Fuhrerbox 360 [Xbox 360]
тип я понял, что сокрытие вроде часть инкапсуляции...

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

Fuhrerbox 360 [Xbox 360]
то есть инкапсуляция это свойства ?

Нет это я тебе как пример привел, по сути везде разное, кто-то утверждает что инкапсуляция это степень доступности данных/методов из других классов, кто-то про то что инкапсуляция это внутренняя валидация данных когда тебе могут в метод отправить условно любое число а он работает с диапазоном от 0 до 100 например

Fuhrerbox 360 [Xbox 360]
аа теперь понял

Инкапсуляция это про объединение данных и логики в единое закрытое целое, целостность состояния которого реализуется за счёт сокрытия

Sleeping Nope
Инкапсуляция это про объединение данных и логики в...

Сейчас ExtreamCode тебе как за сокрытие пояснят.

Александр
Инкапсуляция это обеспечение безопасного изменения...

Сокрытие для инкапсуляции не нужно, это не объязательно

Phantom
Сокрытие для инкапсуляции не нужно, это не объязат...

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

Александр
я и не говорил что обязательно, просто это один из...

А сколько вариантов есть? И почему это вариант инкапсуляции?

Phantom
А сколько вариантов есть? И почему это вариант инк...

А что это тогда если не вариант инкапсуляции? В моем понимании есть разные виды инкапсуляции. К примеру, если ты обьявлешь локальную переменную внутри метода - ты её инкапсулируешь в рамках этого метода, тут сокрытие, никто из вне не может получить эти данные. Если говорить про ООП инкапсуляцию, у неё тоже разные варианты есть, к примеру валидация данных, чтобы X не был меньше 0, то же сокрытие private - protected. Ну есть и другие варианты инкапсуляции, по типу параметров доступа для класса, модификатора sealed, ключевых слов readonly, in (при передачи параметров в метод) и других. В моем понимании инкапсулиция - механизм обеспечения безопасности данных и правильного их использования. А сами эти механизмы бывают разные

Александр
А что это тогда если не вариант инкапсуляции? В мо...

Просто механизм сокрытия и статического анализа

Phantom
Просто механизм сокрытия и статического анализа

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

Александр
почему, обьясни?

Потому что, просто скрывая, ты не инкапсулируешь. Получается, если рандомно натыкаю private или все сделаю private, я молодец? Заинкапсулировал все? И сокрытие не часть инкапсуляции, это отдельный инструмент

Phantom
Потому что, просто скрывая, ты не инкапсулируешь. ...

В реализации большинства языков программирования (C++, C#, Java и другие) обеспечивается механизм сокрытия, позволяющий разграничивать доступ к различным частям компонента. Однако, некоторые языки (например, Smalltalk, Python) реализуют инкапсуляцию, но не предусматривают возможности сокрытия в принципе. Википедия. P.S я не говорил что просто скрывая, ты инкапсулируешь, значит ты невнимательно читал, я наоборот, считаю сокрытие самой простой и банальной версией инкапсуляции. Естественно если у тебя все поля будет private это не решит всех проблем, но если у тебя по дефолту поля private - то да, ты молодец

Phantom
chatgpt?

https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%BA%D0%B0%D0%BF%D1%81%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)

инкапсуляция, в самом слове уже всё сказано - ин капсула, то есть "в капсуле". Другими словами, объединение в одном объекте его полей и методов, плюс сокрытие от пользователя внутренних механизмов работы объекта. Неважно, что там внутри понаписано, у тебя есть объект и API для работы с ним. Всё. Это и есть инкапсуляция.

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта