Kapsułkowanie jest jednym z trzech głównychcechy programowania obiektowego (OOP). Pozostałe dwa to polimorfizm i dziedziczenie. Razem stanowią podstawę OWP, która określa cały zakres możliwości pisania programów w różnych językach, wykorzystując te trzy zasady. Z kolei języki zorientowane obiektowo są niezbędne do ich wyraźnego przestrzegania.
Programowanie obiektowe opiera się na trzech filarach wszechświata:
Enkapsulacja (programowanie) jestużycie modyfikatorów dostępu do ukrywania części kodu programu od użytkownika końcowego. Pod nim oznacza deweloper lub obiekt dziedziczący.
Definicja definiuje to w ramach enkapsulacjiimplikuje to ukrywanie całego lub części kodu programu. Istotą koncepcji "enkapsulacji" jest manipulowanie modyfikatorami dostępu. Oznacza to, że sam programista decyduje, które właściwości, metody i klasy zostaną otwarte dla klasy klienta, a które są ukryte.
W języku C # ("C Sharp"), oprócz określonych (z wyjątkiem tych ostatnich), wciąż istnieją takie modyfikatory:
Mechanizm enkapsulacji pozwala wykluczyć wpływ zewnętrzny na kod programu i nieprawidłowe użycie zawartych w nim danych. Odbywa się to poprzez połączenie kodu i danych w jeden.
Integracja implementacji modułu oprogramowania iDane osadzone w kodzie w programowaniu nazywa się obiektem. Istota jego związku z enkapsulacją polega na tym, że jest to ta technika, która pozwala zachować i zapewnić integralność rozpatrywanego mechanizmu.
Enkapsulacja to sposób na uproszczenie procesu kodowania. Liczne linie kodu pozostają "za kulisami", aw głównej klasie praca idzie z instancjami obiektów.
Kapsułkowanie jest również mechanizmem, któryrealizuje ideę ochrony danych. Logika programowa programowania obiektowego opiera się na fakcie, że większość danych będzie ukryta przez modyfikator dostępu prywatny (prywatny, prywatny) lub chroniony (chroniony). W świecie zewnętrznym, klient przypadkowo lub celowo nie może uszkodzić implementacji modułu oprogramowania. Ponieważ w rzeczywistości bardzo łatwo jest to zrobić nawet celowo, hermetyzacja jest bardzo dobrą zasadą.
Klasa, jako podstawowa jednostka enkapsulacji,opisuje dane i zawiera kod, który może działać z tymi danymi. Jest także podstawą do budowania obiektu. Ta ostatnia z kolei jest reprezentowana jako instancja klasy.
Przykład enkapsulacji (programowania):
* Uwaga:
opis jest opisem metody / właściwości / zmiennej, czyli komentowaniem tego, co faktycznie dzieje się w programie. Wykazane z tagami otwierania / zamykania
używając System;
przestrzeń nazw OOPLibrary.Auto
{
///
/// Ta klasa ma opisywać właściwości i działania samochodu
///
public class Auto
{
///
/// Zmienna stworzona, aby napisać do niej, ile lat ma samochód, ponieważ zewnętrzna ingerencja w tę właściwość jest uważana przez autora za zbędną
/// jest oznaczony przez modyfikator prywatny, czyli prywatny, prywatny dostęp (patrz powyższy opis).
///
prywatna intacja;
///
/// Zmienna typu Boolean (tylko dwie możliwe wartości - tak lub nie), która określa, czy samochód aktualnie się porusza
/// Nie powinien także być otwarty dla użytkownika końcowego, kimkolwiek on jest. Dlatego ta zmienna ma przypisany prywatny modyfikator dostępu "privat"
///
prywatny bool _isMoving;
///
/// Ta zmienna łańcuchowa musi zawierać informacje o kolorze samochodu. Może podlegać zmianom od wpływów zewnętrznych
///, ponieważ do koloru został wybrany modyfikator publicznego dostępu "public".
///
publiczny ciąg Kolor;
///
/// W tym konkretnym przypadku zakładamy, że nazwę samochodu można również zmienić
/// przypisuje publiczny modyfikator (publiczny dostęp dla wszystkich, niezależnie od klasy lub zespołu).
///
public string Name;
///
/// Konstruktor klasy jest otwarty, a wszystkie właściwości wyrażone przez zmienne i określone wcześniej otrzymują swoje wartości
///
publiczny Auto ()
{
_age = 5;
_isMoving = false;
Kolor = "Fioletowy";
Name = "Skoda Octavia";
}
///
/// Ta metoda implementuje zwracaną wartość wieku automatycznego. Dlaczego jest to konieczne?
/// modyfikator prywatnego dostępu nie pozwala na zmianę klienta.
///
/// Zwraca wiek samochodu.
publiczny ciąg GetAge ()
{
return "W tej chwili wybrana maszyna ma wiek" + _age + ".";
}
///
/// Jeśli samochód się nie porusza, ta metodazdaje sobie sprawę z początku ruchu. Sprawdzana jest zmienna wskazująca stan samochodu (czy jest w ruchu, czy nie) i, w zależności od wyników, wykonywane jest odpowiednie działanie / wyświetla się odpowiedni komunikat.
///
public void Start ()
{
jeśli (_imperowanie)
{
Console.WriteLine ("Ruch już się rozpoczął");
}
jeszcze
{
_isMoving = true;
Console.WriteLine ("Aby rozpocząć, uwaga .. Prześlij dalej! Chodźmy!");
}
}
///
/// Jeśli ruch został uruchomiony, ta metoda zatrzymuje go. Ta sama logika programowania jak w poprzednim przypadku.
///
public void Zatrzymaj ()
{
jeśli (_imperowanie)
{
_isMoving = false;
Console.WriteLine ("Stop, maszyna");
}
jeszcze
{
Console.WriteLine ("Błąd: samochód jest już na miejscu, nie porusza się");
}
}
///
/// Skręć w lewo, jeśli jest ruch pojazdu
///
public void MoveLeft ()
{
jeśli (_imperowanie)
{
Console.WriteLine ("Turned left");
}
jeszcze
{
Console.WriteLine ( „Błąd pojazd jest nieruchomy możliwość obracania obecnie nie jest dostępna.”);
}
}
///
/// Podobna metoda z obrotem w prawo
///
public void MoveRight ()
{
jeśli (_imperowanie)
{
Console.WriteLine ("Turn right was successful");
}
jeszcze
{
Console.WriteLine ("Błąd: Samochód jeszcze się nie przesunął." Przekręcenie w prawo jest obecnie niemożliwe. ");
}
}
}
}
</ p>