muzruno.com

Капсулиране е какво? Капсулиране в програмирането

Капсулирането е една от трите основни характеристики обектно-ориентирано програмиране (ООП).

Другите две са полиморфизъм и наследство. Заедно те формират основата на ООП, която определя целия набор от възможности за писане на програми на различни езици, като се използват тези три принципа. Обектно-ориентираните езици, от своя страна, трябва да ги следват ясно.капсулиране е

Основни положения на OOP

Обектно-ориентираното програмиране стои на три стълба на своята вселена:

  • Полиморфизъм, който отговаря на въпроса как определен език за програмиране третира обекти, които имат взаимоотношения един с друг по подобен начин.
  • Наследството, което дава отговор, как стимулирането на използването на кода се появява многократно.
  • Капсулирането, което е отговорът на въпроса как се крие изпълнението и по този начин се запазва целостта на данните.

терминология

Капсулирането (програмирането) е използването на модификатори за достъп, за да се скрият части от кода от крайния потребител. Под него, от своя страна, означава разработчик или наследяващ обект.
концепции за капсулиране

Същността на концепцията за "капсулиране"

Дефиницията определя, че капсулирането означава прикриване на целия или на част от кода. Същността на понятието "капсулиране" е манипулирането на модификаторите на достъпа. Това означава, че самият разработчик решава кои свойства, методи и класове ще бъдат отворени за клиентския клас и кои от тях са скрити.

Модификатори за достъп

програмиране на капсулиранетоИма такива модификатори на достъпа, които, наред с други, могат да манипулират капсулирането (Java програмиране):

  • обществени (обществено-публични, отворени, достъпни) - споделен достъп както за текущи обекти и класове, така и за външния свят;
  • частна ("частна" - частен, частен, скрит достъп) - частен достъп, чиято същност е напълно противоположна на предишната. Осигурява достъп само от текущия клас;
  • защитени (защитени, полукрили, достъп) - достъп за текущия клас и неговите производни;
  • По подразбиране, неуточнен модификатор за достъп предполага, че полето / методът е видим за целия пакет от текущи класове.

В C # ("C Sharp"), освен посочените (с изключение на последното), все още има такива модификатори:

  • вътрешна (вътрешна) - достъпност в текущата колекция, затворен достъп за всички останали случаи;
  • вътрешен защитени ("вътрешен защитен достъп") - комбинация от два модификатори в едно, в които се проявяват свойствата на двете.

Ролята на капсулирането

Механизмът на капсулиране ви позволява да изключите външното влияние върху програмния код и неправилното използване на вградените в него данни. Това става чрез комбиниране на кода и данните в едно.
Пример за програмиране на капсулиране

Обект и капсулиране

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

Предимство на капсулирането

Капсулирането е начин за опростяване на процеса на кодиране. Многобройни кодове на кода остават "зад кулисите", а в главната работа се въртят с примери на обекти.

Идеята за защита на данните

Капсулирането е и механизъм, който прилага идеята за защита на данните. Програмната логика на обектно-ориентираното програмиране се основава на факта, че повечето от данните ще бъдат скрити от модификатора за достъп частно (частно, частно) или защитено (защитено). Външният свят, клиентът случайно или умишлено не може да повреди реализацията на софтуерния модул. Тъй като в действителност е много лесно да се направи това дори и за целта, капсулирането е много добър принцип.

Единици на капсулиране

Класът, като основна единица за капсулиране, описва данните и съдържа кода, който може да работи с тези данни. Това е и основата за изграждането на обект. Последният, от своя страна, е представен като пример за класа.

капсулиране програмиране JavaИзползва се и следната терминология:

  • членовете са кодът и данните, включени в класа;
  • полета или примерни променливи - така наречените данни, които определят класа;
  • които съдържат самия код. Функциите на членовете са родово име. Специален случай са методите.

Капсулиране на конкретен пример

програмирането на капсулирането е

Пример за капсулиране (програмиране):

* Забележка:

описанието е описание на метода / свойството / променливата, т.е. коментира какво всъщност се случва в програмата. Демонстрирано с етикети за отваряне / затваряне

използвайки System-

namespace OOPLibrary.Auto

{

///

/// Този клас е предназначен да опише свойствата и действията на колата

///

публичен клас Auto

{

///

/// Променлива, създадена, за да го напише, колко е старата кола, тъй като външната намеса в тази собственост се счита от разработчика за излишна

/// е маркиран с модификатора частен, т.е. частен, частен достъп (виж описанието по-горе).

///

частен int _age-

///

/// Булева променлива (само две възможни стойности - да или не), които описват дали автомобилът в момента се движи

/ / / Тя също не трябва да бъде отворена за крайния потребител, който и да е той. Следователно, тази променлива е присвоена на модификатор на частния достъп "privat"

///

private bool _isMoving-

///

/// Тази променлива низ трябва да съдържа информация за цвета на колата. Тя може да бъде подложена на промени от външни влияния

///, тъй като за цвета бе избран модификаторът за публичен достъп "public".

///

публичен низ Color-

///

/// В този конкретен случай предполагаме, че името на колата също може да бъде променено

/// присвоява публичен модификатор (публичен достъп за всеки, независимо от класа или монтажа).

///

публичен низ Име-

///

/// Класовия конструктор се отваря и всички свойства, изразени чрез променливи и посочени по-рано, получават своите стойности

///

обществено Автоматично ()

{

_age = 5-

_isMoving = false-

Цвят = "Лилаво" -

Име = "Шкода Октавия" -

}

///

/// Методът реализира възвращаемостта на възрастта на авто. Защо е необходимо?

/// модификаторът на частния достъп не позволява на клиента да го промени.

///

/// Връща възрастта на колата.

публичен низ GetAge ()

{

return "В момента избраната машина е" + _age + "години." -



}

///

/// Ако колата не се движи, този метод изпълнява началото на движението. Проверява се променливата, която показва състоянието на автомобила (независимо дали пътува или не) и в зависимост от резултатите се изпълнява съответното действие / се показва съответното съобщение.

///

public void Start ()

{

ако (_isMoving)

{

Console.WriteLine ("Движението вече е започнало") -

}

още

{

_isMoving = true-

Console.WriteLine ("За да започнете вниманието .. Напред! Хайде!") -

}

}

///

/// Ако движението е започнало, този метод го спира. Същата логика на програмирането, както в предишния случай.

///

public void Стоп ()

{

ако (_isMoving)

{

_isMoving = false-

Console.WriteLine ("Стоп, машина") -

}

още

{

Console.WriteLine ("Грешка: Колата все още е на мястото си, не се движи") -

}

}

///

/// Завийте наляво, ако има движение на превозното средство

///

public void MoveLeft ()

{

ако (_isMoving)

{

Console.WriteLine ("Завийте наляво") -

}

още

{

Console.WriteLine ("Грешка: Колата е неподвижна, функцията за завъртане понастоящем не е налице") -

}

}

///

/// Подобен метод с въртене надясно

///

public void MoveRight ()

{

ако (_isMoving)

{

Console.WriteLine ("Завъртането вдясно е направено успешно") -

}

още

{

Console.WriteLine ("Грешка: Колата все още не е преместена". Завъртането надясно понастоящем е невъзможно.) -

}

}

}

}

Споделяне в социалните мрежи:

сроден