Енцапсулација је једна од три главнаособине објектно-оријентисаног програмирања (ООП). Друга два су полиморфизам и наслеђивање. Заједно они чине базу ПЛО, која одређује читав низ могућности за писање програма на различитим језицима, користећи ова три принципа. Објектно оријентирани језици, заузврат, морају их јасно пратити.
Објектно оријентисано програмирање стоји на три стуба свог универзума:
Енцапсулатион (програмирање) јекоришћење модификатора приступа да бисте сакрили делове програмског кода од крајњег корисника. Под њим, заузврат, подразумева програмер или објекат наслеђивања.
Дефиниција дефинира да под инкапсулацијомто подразумева скривање свих или делова програмског кода. Суштина концепта "енкапсулације" је манипулација модификатора приступа. То значи да сами програмер одлучи која својства, методе и класе ће бити отворене за клијентску класу, а које су скривене.
У Ц # ("Ц Схарп"), поред наведеног (осим последњег), још увек постоје такви модификатори:
Механизам инкапсулације вам омогућава да искључите спољашњи утицај на програмски код и неправилно коришћење података који су уграђени у њега. Ово се ради комбиновањем кода и података у један.
Интеграција имплементације софтверског модула иПодаци уграђени у програмски код се називају објектом. Суштина његове повезаности са инкапсулацијом лежи у чињеници да је ова техника која омогућава одржавање и осигурање интегритета механизма у питању.
Енцапсулација је начин поједностављивања процеса кодирања. Бројне линије кода остају "иза сцене", ау главној класној радионици иде објекти.
Енцапсулација је такође механизам којиостварује идеју заштите података. Програмска логика објектно-оријентисаног програмирања заснива се на чињеници да ће већина података сакрити модификатор приступа приватним (приватним, приватним) или заштићеним (заштићеним). Спољни свет, клијент случајно или намерно не може оштетити имплементацију софтверског модула. Пошто је заправо то врло лако учинити чак и намерно, енкапсулација је врло добар принцип.
Класа, као основна јединица енкапсулације,описује податке и садржи код који је способан да ради са овим подацима. То је основа за изградњу објекта. Ово је, заузврат, представљено као пример класе.
Пример енкапсулације (програмирања):
* Напомена:
опис је опис методе / својства / варијабле, односно коментирања онога што се стварно дешава у програму. Демонстрирано са ознакама за отварање / затварање
користећи систем;
намеспаце ООПЛибрари.Ауто
{
///
/// Ова класа намијењена је за описивање својстава и радњи аутомобила
///
јавна класа Ауто
{
///
/// променљиве креиране како би се писати у њој, колико год ауто, јер је спољна мешање у имовину програмер сматра сувишним
/// је обележен са модификатором приватним, тј. приватним, приватним приступом (погледајте горњи опис).
///
приватни инт _аге;
///
/// Боолеан вариабле (само две могуће вредности - да или не) које описују да ли се аутомобил тренутно креће
Не би требало да буде отворено за крајњег корисника, ко год да је. Стога, овој варијабли додељује се приватни модификатор приступа "приват"
///
приватни боол _исМовинг;
///
/// Ова стринг варијабла мора садржавати информације о бојама аутомобила. Може бити подложно промјенама од спољашњих утјецаја
јер је за боју одабран модификатор јавног приступа "јавни".
///
јавни низ Боја;
///
У овом конкретном случају претпостављамо да се име аутомобила може променити
/// додељује јавни модификатор (јавни приступ за све, без обзира на класу или скупу).
///
јавни низ Име;
///
/// Конструктор класе је отворен, а сва својства изражена променљивима и претходно наведена, добијају своје вриједности
///
јавни Ауто ()
{
_аге = 5;
_исМовинг = фалсе;
Боја = "Љубичаста";
Наме = "Скода Оцтавиа";
}
///
/// Метод имплементира повратну вредност старости аута. Зашто је то неопходно?
Модификатор приватног приступа не омогућава клијенту да је промени.
///
/ / Враћа старост аутомобила.
јавни низ ГетАге ()
{
повратак "Тренутно изабрана машина је" + _аге + "година старости.";
}
///
Ако се аутомобил не помера, овај методсхвата почетак покрета. Провера се врши на променљивој индикацији стања аутомобила (без обзира да ли путује или не) и, у зависности од резултата, врши се одговарајућа радња / приказује се одговарајућа порука.
///
публиц воид Старт ()
{
ако (_исМовинг)
{
Цонсоле.ВритеЛине ("Покрет је већ започео");
}
друго
{
_исМовинг = труе;
Цонсоле.ВритеЛине ("За почетак, пажња .. Напред, идемо!");
}
}
///
Ако је покрет покренут, онда овај метод зауставља. Иста програмска логика као у претходном случају.
///
јавни воид Стоп ()
{
ако (_исМовинг)
{
_исМовинг = фалсе;
Цонсоле.ВритеЛине ("Стоп, машина");
}
друго
{
Цонсоле.ВритеЛине ("Грешка: ауто је већ на месту, не помиче");
}
}
///
/// Скрените лево ако је кретање возила
///
јавни воид МовеЛефт ()
{
ако (_исМовинг)
{
Цонсоле.ВритеЛине ("Турнед лефт");
}
друго
{
Цонсоле.ВритеЛине ("Грешка: Аутомобил је стациониран, функција ротације тренутно недоступна");
}
}
///
Сличан метод са ротацијом удесно
///
публиц воид МовеРигхт ()
{
ако (_исМовинг)
{
Цонсоле.ВритеЛине ("Скрени десно је успјешно");
}
друго
{
Цонсоле.ВритеЛине ("Грешка: Аутомобил се још није померио." Окретање десно тренутно је немогуће радње. ");
}
}
}
}
</ п>