Что означает слово инкапсуляция

Инкапсуляция

Словарь иностранных слов.- 11-е изд., стереотип.- М.:Рус.яз., 1984.-608 с.

Что означает слово инкапсуляция

Что означает слово инкапсуляцияСписок значений слова или словосочетания со ссылками на соответствующие статьи.
Если вы попали сюда из другой статьи Википедии, пожалуйста, вернитесь и уточните ссылку так, чтобы она указывала на статью.

Полезное

Смотреть что такое «Инкапсуляция» в других словарях:

ИНКАПСУЛЯЦИЯ — (лат.). Изменение одних слов в другие, в американских языках. Словарь иностранных слов, вошедших в состав русского языка. Чудинов А.Н., 1910. инкапсуляция (лат. in в) образование капсулы 1 вокруг чуждых для организма веществ (инородных тел,… … Словарь иностранных слов русского языка

Инкапсуляция — в объектно ориентированном программировании сокрытие внутренней структуры данных и реализации методов объекта от остальной программы. Другим объектам доступен только интерфейс объекта, через который осуществляется все взаимодействие с ним. По… … Финансовый словарь

инкапсуляция — инкапсулирование Словарь русских синонимов. инкапсуляция сущ., кол во синонимов: 1 • инкапсулирование (1) Словарь синонимов ASIS … Словарь синонимов

инкапсуляция «IP в IP» — Для инкапсуляции в дейтаграмму IP используется инкапсуляция IP в IP (IP in IP), для этого перед существующим заголовком IP дейтаграммы вставляется внешний заголовок IP (МСЭ Т Y.1281). [http://www.iks media.ru/glossary/index.html?glossid=2400324]… … Справочник технического переводчика

ИНКАПСУЛЯЦИЯ — (от лат capsula ящик, капсула, сумка), осумкование, термин, употребляющийся для обозначения разрастания соединительнотканной капсулы, сумки вокруг тех или иных пат. образований, паразитов и пр. тел, не подвергающихся почему либо рассасыванию в… … Большая медицинская энциклопедия

инкапсуляция — скрытие включение вбирание Термин объектно ориентированного программирования, означающий структурирование программы на модули особого вида, называемые классами и объединяющие данные и процедуры их обработки, причем внутренние данные класса не… … Справочник технического переводчика

инкапсуляция — (incapsulatio; ин + лат. capsula ящичек, оболочка) процесс отграничения очага воспаления или инородного тела путем образования вокруг него фиброзной оболочки (капсулы) … Большой медицинский словарь

инкапсуляция — инкапсуляция, инкапсуляции, инкапсуляции, инкапсуляций, инкапсуляции, инкапсуляциям, инкапсуляцию, инкапсуляции, инкапсуляцией, инкапсуляциею, инкапсуляциями, инкапсуляции, инкапсуляциях (Источник: «Полная акцентуированная парадигма по А. А.… … Формы слов

инкапсуляция — инкапсул яция, и … Русский орфографический словарь

ИНКАПСУЛЯЦИЯ — (от лат. in — в, внутри и capsula —коробочка, ящичек), разрастание соединительной ткани вокруг инородных тел или мёртвых масс, образующихся в органах и тканях при различных патологических процессах … Ветеринарный энциклопедический словарь

Источник

ИНКАПСУЛЯЦИЯ

Полезное

Смотреть что такое «ИНКАПСУЛЯЦИЯ» в других словарях:

Инкапсуляция — (лат. in в, capsula коробочка ; итал. incapsulare закупоривать) 1. Изоляция, закрытие чего либо мешающего, ненужного, вредного с целью исключения отрицательного влияния на окружающее. (Поместить радиоактивные отходы в капсулу, закрыть… … Википедия

Инкапсуляция — в объектно ориентированном программировании сокрытие внутренней структуры данных и реализации методов объекта от остальной программы. Другим объектам доступен только интерфейс объекта, через который осуществляется все взаимодействие с ним. По… … Финансовый словарь

инкапсуляция — инкапсулирование Словарь русских синонимов. инкапсуляция сущ., кол во синонимов: 1 • инкапсулирование (1) Словарь синонимов ASIS … Словарь синонимов

инкапсуляция «IP в IP» — Для инкапсуляции в дейтаграмму IP используется инкапсуляция IP в IP (IP in IP), для этого перед существующим заголовком IP дейтаграммы вставляется внешний заголовок IP (МСЭ Т Y.1281). [http://www.iks media.ru/glossary/index.html?glossid=2400324]… … Справочник технического переводчика

ИНКАПСУЛЯЦИЯ — (от лат capsula ящик, капсула, сумка), осумкование, термин, употребляющийся для обозначения разрастания соединительнотканной капсулы, сумки вокруг тех или иных пат. образований, паразитов и пр. тел, не подвергающихся почему либо рассасыванию в… … Большая медицинская энциклопедия

инкапсуляция — скрытие включение вбирание Термин объектно ориентированного программирования, означающий структурирование программы на модули особого вида, называемые классами и объединяющие данные и процедуры их обработки, причем внутренние данные класса не… … Справочник технического переводчика

инкапсуляция — (incapsulatio; ин + лат. capsula ящичек, оболочка) процесс отграничения очага воспаления или инородного тела путем образования вокруг него фиброзной оболочки (капсулы) … Большой медицинский словарь

инкапсуляция — инкапсуляция, инкапсуляции, инкапсуляции, инкапсуляций, инкапсуляции, инкапсуляциям, инкапсуляцию, инкапсуляции, инкапсуляцией, инкапсуляциею, инкапсуляциями, инкапсуляции, инкапсуляциях (Источник: «Полная акцентуированная парадигма по А. А.… … Формы слов

инкапсуляция — инкапсул яция, и … Русский орфографический словарь

ИНКАПСУЛЯЦИЯ — (от лат. in — в, внутри и capsula —коробочка, ящичек), разрастание соединительной ткани вокруг инородных тел или мёртвых масс, образующихся в органах и тканях при различных патологических процессах … Ветеринарный энциклопедический словарь

Источник

ООП. Часть 3. Модификаторы доступа, инкапсуляция

Классы, методы и поля не всегда могут постоять за себя. Рассказываем, как быть защитником в объектно-ориентированном программировании.

Что означает слово инкапсуляция

Что означает слово инкапсуляция

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

Важно! Инкапсуляция не является сокрытием. Сокрытие — это часть инкапсуляции.

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

Все статьи про ООП

Что означает слово инкапсуляция

Пишет о разработке сайтов, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.

Модификатор доступа public

Первый уровень, с которым сталкиваются все разработчики, — публичный. Чтобы сказать компилятору, что что-то должно быть доступно для всех, используется ключевое слово public.

Рассмотрим на примере класса Item:

Объявив экземпляр этого класса, можно обращаться к любым его полям в любом месте программы, где доступен сам объект (речь о локальных и глобальных переменных).

Так как поля публичные, в консоли они отобразятся без каких-либо проблем:

Что означает слово инкапсуляция

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

Из-за того, что поле публичное, оно изменится:

Что означает слово инкапсуляция

Это плохо по нескольким причинам:

Разумеется, это не лучшее, что может случиться с приложением.

Модификатор доступа private

Чтобы поля были защищены от вмешательства, используется ключевое слово private — оно делает члены класса доступными только внутри самого класса.

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

Что означает слово инкапсуляция

Есть два способа сделать поле доступным только для чтения. Первый — использовать ключевое слово readonly, но оно запрещает менять значение вообще.

Второй способ заключается в том, чтобы передавать значения приватного члена класса через публичный. Например, с помощью методов:

К такой практике прибегают Java-разработчики, но в C# есть более элегантный способ — свойства.

Теперь, чтобы получить данные, нужно обратиться к свойству, а не к полю:

Преимущество этого в том, что можно разрешить получать данные, но запретить их менять. То есть прописать только геттер:

Обратите внимание, что можно просто написать set; или get; если не требуется дополнительная логика. Это сработает, если у поля и свойства одинаковые имена и если это примитивный тип (int, float, char, double и другие). Со ссылочными типами (объекты и строки) это не работает.

Также можно менять логику работы со значением:

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

То есть если запустить вот такой код:

Что означает слово инкапсуляция

Также можно создавать свойства без поля:

Это свойство вернёт true, если цена выше 5000, и false, если ниже.

Ключевое слово private можно также применять и к методам. Это делает их доступными только внутри класса.

Также приватным можно сделать сам класс, если он находится внутри другого класса:

Модификатор доступа internal

Иногда нужно сделать компонент доступным только внутри одного файла — например, в Program.cs, Item.cs или любом другом. Для этого используется ключевое слово internal.

Класс Backpack можно будет использовать только внутри файла Program.cs, и попытка объявить его внутри другого файла приведёт к ошибке.

Ключевое слово static

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

Метод Sum () используется в классе Program, хотя экземпляр класса Calc не создавался. При этом можно сделать статичным как отдельный метод или свойство, так и весь класс. В этом случае все поля и методы тоже должны быть статичными.

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

Другой пример — класс Math. Его можно использовать, чтобы выполнять различные математические операции (получение квадратного корня, модуляция, получение синуса, косинуса и так далее). У него много методов, а также он хранит различные константы вроде числа пи.

Домашнее задание

Напишите класс GameObject, в котором будут храниться координаты объекта. Координаты должны быть доступны для чтения, а их изменение должно происходить в методе Move ().

Заключение

Есть и другие ключевые слова:

Они будут рассмотрены в статье о наследовании.

Большая часть курса «Профессия С#-разработчик» посвящена именно ООП —
не только теории, но и практике. Вы научитесь писать программы, подбирая нужные инструменты — от инкапсуляции до полиморфизма. К концу курса у вас будет портфолио из нескольких проектов, а также все знания и навыки, которые нужны для получения первой работы.

Источник

Инкапсуляция в Си++ и Си

Что означает слово инкапсуляция

Определение

Инкапсуляция это набор инструментов для управления доступом к данным или методам которые управляют этими данными. С детальным определением термина “инкапсуляция” можно ознакомиться в моей предыдущей публикации на Хабре по этой ссылке. Эта статья сфокусирована на примерах инкапсуляции в Си++ и Си.

Инкапсуляция в Си++

По умолчанию, в классе ( class ) данные и методы приватные ( private ); они могут быть прочитаны и изменены только классом к которому принадлежат. Уровень доступа может быть изменен при помощи соответствующих ключевых слов которые предоставляет Си++.

В Си++ доступно несколько спецификаторов, и они изменяют доступ к данным следующим образом:

Для краткости, только два уровня (приватный и публичный) будут освещены в примерах.

Пример инкапсуляции

Попытка напечатать или изменить приватную переменную mobile_number из основной программы ( main ) вызовет ошибку при компиляции потому как доступ к приватным данным в классе ограничен.

Нарушение инкапсуляции с Друзьями (Хорошая практика)

В Си++ присутствует ключевое слово “друг” ( friend ) которое позволяет добавить исключения в общие правила доступа к данным. Если функция или класс названы другом ( friend ) класса Contact — они получают свободный доступ к защищенным или приватным данным.

Существует два основных правила дружбы — дружба не наследуется и не взаимна. Также, наличие “друзей” не изменяет уровень защищенности данных — приватные данные остаются приватными с исключением в виде “друга”.

Примечание: друзьями лучше не злоупотреблять. Добавление друга стоит рассматривать как исключение, не как общую практику.

Нарушение инкапсуляции с Преобразованием типов и Указателями (Плохая практика)

Прежде всего, стоит заметить что использовать указатели и преобразование типов таким способом — плохая идея. Этот способ не гарантирует получения нужных данных. Он плохо читается и плохо поддерживается. Невзирая на это, он существует.

Си++ получил в наследство от Си множество инструментов, один из которых — преобразование типов ( typecasting ). По умолчанию, все переменные и методы в классе приватные. В то же время, стандартный уровень доступа к данным в структуре ( struct ) — публичный. Возможно создать структуру или полностью публичный класс в котором данные будут расположены идентично данным в классе Contact и используя преобразование типов получить доступ к приватным данным.

Приватные данные были прочитаны и изменены благодаря преобразованию типов

Инкапсуляция в Си

Традиционно считается что инкапсуляция — один из ключевых ООП принципов. Тем не менее, это не лимитирует использование этого принципа в процедурно-ориентированных языках. В Си, инкапсуляция используется давно, невзирая на отсутствие ключевых слов “приватный” и “публичный”.

Приватные переменные

В данном примере, структура была определена в отдельном исходном файле “private_var.c”. Поскольку инициализация структуры в Си требует выделения и освобождения памяти, несколько вспомогательных функций были добавлены.

В соответствующем заголовочном файле «private_var.h», структура Contact была объявлена, но ее содержание осталось скрытым для основной программы.

Таким образом, для “main.c” содержание структуры неизвестно и попытки прочитать или изменить приватные данные вызовут ошибку при компиляции.

Получение доступа к приватным переменным с Указателями

Преобразование типов может быть использовано для преодоления инкапсуляции в Си также как и в Си++, но данный подход уже был описан. Зная, что в структуре данные расположены в порядке их декларации, указатели и арифметика указателей подойдет для достижения цели.

Доступ к переменным в структуре ограничен. Тем не менее, спрятаны только переменные, не память в которой хранятся данные. Указатели можно рассматривать как ссылку на адрес памяти, и если эта память доступна программе — данные сохраненные в этой памяти можно прочитать и изменить. Если указатель назначен на память в которой структура хранит свои данные — их можно прочитать. Используя то же определение структуры (те же “.c” и “.h” файлы) и модифицированный “main.c” файл, ограничение доступа было преодолено.

Данные в структуре были прочитаны и модифицированы

Приватные функции

Функции, будучи внешними ( extern ) по умолчанию, видимы во всей так называемой единице трансляции ( translation unit ). Другими словами, если несколько файлов скомпилированы вместе в один объектный файл, любой из этих файлов сможет получить доступ к любой функции из любого другого файла. Использование ключевого слова “статический” ( static ) при создании функции ограничит ее видимость до файла в котором она была определена.Следовательно, для обеспечения приватности функции необходимо выполнить несколько шагов:

В соответствующем заголовочном файле «private_funct.h», print_numbers() была декларирована как статическая функция.

Получение доступа к приватным функциям

Вызвать функцию print_numbers() из основной программы возможно. Для этого можно использовать ключевое слово goto или передавать в main указатель на приватную функцию. Оба способа требуют изменений либо в исходном файле “private_funct.c”, либо непосредственно в теле самой функции. Поскольку эти методы не обходят инкапсуляцию а отменяют её, они выходят за рамки этой статьи.

Заключение

Инкапсуляция существует за пределами ООП языков. Современные ООП языки делают использование инкапсуляции удобным и естественным. Существует множество способов обойти инкапсуляцию и избежание сомнительных практик поможет ее сохранить как в Си, так и в Си++.

Источник

Инкапсуляция

Смотреть что такое «Инкапсуляция» в других словарях:

Инкапсуляция — (лат. in в, capsula коробочка ; итал. incapsulare закупоривать) 1. Изоляция, закрытие чего либо мешающего, ненужного, вредного с целью исключения отрицательного влияния на окружающее. (Поместить радиоактивные отходы в капсулу, закрыть… … Википедия

ИНКАПСУЛЯЦИЯ — (лат.). Изменение одних слов в другие, в американских языках. Словарь иностранных слов, вошедших в состав русского языка. Чудинов А.Н., 1910. инкапсуляция (лат. in в) образование капсулы 1 вокруг чуждых для организма веществ (инородных тел,… … Словарь иностранных слов русского языка

Инкапсуляция — в объектно ориентированном программировании сокрытие внутренней структуры данных и реализации методов объекта от остальной программы. Другим объектам доступен только интерфейс объекта, через который осуществляется все взаимодействие с ним. По… … Финансовый словарь

инкапсуляция — инкапсулирование Словарь русских синонимов. инкапсуляция сущ., кол во синонимов: 1 • инкапсулирование (1) Словарь синонимов ASIS … Словарь синонимов

инкапсуляция «IP в IP» — Для инкапсуляции в дейтаграмму IP используется инкапсуляция IP в IP (IP in IP), для этого перед существующим заголовком IP дейтаграммы вставляется внешний заголовок IP (МСЭ Т Y.1281). [http://www.iks media.ru/glossary/index.html?glossid=2400324]… … Справочник технического переводчика

ИНКАПСУЛЯЦИЯ — (от лат capsula ящик, капсула, сумка), осумкование, термин, употребляющийся для обозначения разрастания соединительнотканной капсулы, сумки вокруг тех или иных пат. образований, паразитов и пр. тел, не подвергающихся почему либо рассасыванию в… … Большая медицинская энциклопедия

инкапсуляция — скрытие включение вбирание Термин объектно ориентированного программирования, означающий структурирование программы на модули особого вида, называемые классами и объединяющие данные и процедуры их обработки, причем внутренние данные класса не… … Справочник технического переводчика

инкапсуляция — (incapsulatio; ин + лат. capsula ящичек, оболочка) процесс отграничения очага воспаления или инородного тела путем образования вокруг него фиброзной оболочки (капсулы) … Большой медицинский словарь

инкапсуляция — инкапсуляция, инкапсуляции, инкапсуляции, инкапсуляций, инкапсуляции, инкапсуляциям, инкапсуляцию, инкапсуляции, инкапсуляцией, инкапсуляциею, инкапсуляциями, инкапсуляции, инкапсуляциях (Источник: «Полная акцентуированная парадигма по А. А.… … Формы слов

инкапсуляция — инкапсул яция, и … Русский орфографический словарь

ИНКАПСУЛЯЦИЯ — (от лат. in — в, внутри и capsula —коробочка, ящичек), разрастание соединительной ткани вокруг инородных тел или мёртвых масс, образующихся в органах и тканях при различных патологических процессах … Ветеринарный энциклопедический словарь

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *