171 Shares 1403 views

Encapsulation – co to jest? Enkapsulacja w programowaniu

Encapsulation – jest to jeden z trzech głównych cech programowania obiektowego (OOP). Pozostałe dwa – Polimorfizm i dziedziczenie. Razem tworzą ramy PLO który ustanawia szereg cech pisania programów w różnych językach, korzystając z tych trzech zasad. języków obiektowych, z kolei, są zobowiązani do ścisłego ich przestrzegania.

Podstawy OOP

Programowanie obiektowe na trzech filarach jego powstania:

  • Polimorfizm, odpowiadając na pytanie, w jaki zajmuje dany język programowania z obiektami, które mają związek ze sobą, w podobny sposób.
  • Dziedziczenie, dając odpowiedź, jak jest stymulacja wykorzystania kodu wielokrotnego użytku.
  • Enkapsulacji, który jest odpowiedzią na pytanie o ukrywanie wdrażanie odbywa się, a tym samym integralność danych.

terminologia

Encapsulation (programowanie) – jest użycie modyfikatory dostępu, aby ukryć fragmenty kodu z użytkownikiem końcowym. Pod nim z kolei oznacza witryn programistów lub dziedzictwa.

Istotą koncepcji „obudowania”

Definicja określa, że za ukrywanie hermetyzacji oznaczało całość lub część kodu programu. Istotą koncepcji „hermetyzacji” jest manipulować modyfikatory dostępu. Oznacza to, że deweloper może zdecydować, które właściwości, metod, a zajęcia będą otwarte dla klientów klasy, a co – ukryte.

modyfikatory dostępu

Istnieje modyfikatory dostępu, które, między innymi jest zdolny do enkapsulacji manipulyarivat programowania (Java):

  • publiczne ( „Publiczny” – publiczna, otwarty dostęp) – udział zarówno obecne klasy i obiekty, a ze światem zewnętrznym;
  • prywatny ( „prayvat” – prywatne, prywatne, ukryty dostępu) – zamknięty dostęp, którego istotą jest zupełnie przeciwny do poprzedniego. Zapewnia on dostęp tylko od aktualnej klasie;
  • chronione ( „protekted” – zabezpieczony pół ukryte dostępu) – dostęp do aktualnej grupy i ich pochodne;
  • domyślne – nieokreślona modyfikator dostępu oznacza, że pole / metoda może być postrzegane przez wszystkich obecnych klas w pakiecie.

W języku C # ( „Si ostrych”), w uzupełnieniu do powyższego (z wyjątkiem ostatniego), nadal istnieją wyrażeń:

  • wewnętrznego ( „internal” – dostęp wewnętrzny) – dostępność w obecnym zespole, kryty dostęp do wszystkich pozostałych przypadkach;
  • Wewnętrzny chronione ( „wewnętrzną protekted” – Protected Access wewnętrzna) – Związek z dwóch modyfikatorów, w którym przejawiają właściwości obu z nich.

Rola hermetyzacji

Mechanizm hermetyzacja eliminuje wpływy zewnętrzne na kodzie i wykorzystaniem danych osadzonych w nim. Osiąga się to poprzez połączenie kod i dane w jednym.

Przedmiot i hermetyzacja

Łącząc wdrożenie modułu oprogramowania i danych osadzonych w kodzie programowania nazywa się obiekt. Istota jego połączenia z hermetyzacji jest to, że taki sposób pozwala na utrzymanie i zapewnienia integralności działania mechanizmu.

Zaletą hermetyzacji

Kapsułkowanie – sposób, aby uprościć proces kodowania. Liczne linie kodu są „za kulisami”, a w głównej pracy klasowej zamierza sprzeciwić instancji.

Idea ochrony danych

Encapsulation – jest to również mechanizm, który realizuje ideę ochrony danych. programowania obiektowego logika Program jest zbudowany na podstawie tego, co większość danych będzie ukryty modyfikator dostępu private (prywatny, prywatny) lub zabezpieczone (chronione). Świat zewnętrzny, klient przypadkowo lub celowo nie uszkodzić wdrożenie modułu oprogramowania. Ponieważ w rzeczywistości sprawia, że bardzo łatwo nawet nie celowo, hermetyzacja – jest to bardzo dobra zasada.

jednostka enkapsulacji

Klasa, jako podstawowej jednostki enkapsulacji i opisuje danych zawiera kod, który jest w stanie działać na tych danych. Jest on również podstawą do budowy obiektu. To ostatnie, z kolei, jest przedstawiony jako przykład.

również z następujących terminów:

  • członków – jest to kod i dane zawarte w klasie;
  • pola lub zmienne instancji – tak zwane dane, które definiuje klasę;
  • Funkcje użytkownika – zawierają one samego kodu. Funkcje użytkownika – wspólna nazwa. Szczególnym przypadkiem – metody.

Konkretny przykład hermetyzacja

Encapsulation (programowanie) przykład:

* Uwaga:

Opis – opis metody / nieruchomość / zmiennej, tj komentując to, co faktycznie dzieje się w programie. Wykazano za pomocą otwierania / zamykania znaczników

using System;

nazw OOPLibrary.Auto

{

///

/// Klasa ta ma na celu opisania działania samochodu

///

public class Auto

{

///

/// zmienne utworzone w celu napisać w nim, ile lat samochodu, ponieważ ingerencja zewnętrzna w dewelopera uważa zbędny

/// modyfikator jako prywatny, to znaczy zamknięty, dostęp do prywatnej (zob. Opis powyżej).

///

private int _age;

///

/// Boolean (tylko dwie możliwe wartości – tak lub nie), który opisuje, czy pojazd porusza się w tej chwili

/// Należy również być otwarte dla użytkownika końcowego, kimkolwiek był. Dlatego ta zmienna jest przypisana prywatny modyfikatora dostępu „prayvat”

///

prywatny _isMoving bool;

///

/// Ta zmienna ciąg powinien zawierać informację o kolorze samochodu. To może być zmieniona przez czynniki zewnętrzne

/// bo modyfikator wybrany kolor otwarty dostęp „publiczne”.

///

Kolor publiczny ciąg;

///

/// W tym konkretnym przypadku zakładamy, że nazwa samochodu, też mogą być zmieniane

/// przypisany modyfikator publicznego (otwarty dostęp dla wszystkich, niezależnie od klasy lub zespołu).

///

public String name;

///

/// Otwiera konstruktora klasy i wszystkie właściwości zmiennej wyrażonej i ustawić trochę wcześniej, aby ich wartości

///

Auto publicznego ()

{

_age = 5;

_isMoving = fałszywe;

Color = "fioletowy";

Name = "Skoda Octavia";

}

///

/// Sposób realizuje wartości zwracanej wieku auto. Dlaczego jest to konieczne?

/// modyfikator private dostępu nie umożliwiają zmiany klienckich.

///

/// Zwraca wiek samochodu.

public string GetAge ()

{

powrót „W tej chwili, wybrana maszyna” + _age + „lat.”;

}

///

/// Jeżeli samochód nie jest w ruchu, metoda ta realizuje rozpoczęcia ruchu. Sprawdza zmienna oboznalsya, stan pojazdu (podróżującego lub nie), oraz, w zależności od wyników, zostanie wyświetlone odpowiednie działania / komunikat.

///

public void Start ()

{

if (_isMoving)

{

Console.WriteLine ( „Ruch został już rozpoczęty”);

}

więcej

{

_isMoving = prawdziwa;

Console.WriteLine ( "Ready, Set .. Idź off!");

}

}

///

/// Jeżeli ruch został zainicjowany, metoda ta zatrzymuje go. Ta sama logika programu jak w poprzednim przypadku rozpatrywane.

///

public void stop ()

{

if (_isMoving)

{

_isMoving = fałszywe;

Console.WriteLine ( "Stop Machine");

}

więcej

{

Console.WriteLine ( „Błąd samochód i tak stoi w miejscu, nie ruszaj”);

}

}

///

/// Zaimplementowane lewo, jeśli nie jest to pojazd

///

public void Lewo ()

{

if (_isMoving)

{

Console.WriteLine ( „skręcić w lewo są zrobione”);

}

więcej

{

Console.WriteLine ( „Błąd pojazd jest nieruchomy możliwość obracania obecnie nie jest dostępna.”);

}

}

///

/// Podobna metoda z prawej kolei

///

public void Przesunięcie w Prawo ()

{

if (_isMoving)

{

Console.WriteLine ( „Skręć w prawo zostało zrealizowane pomyślnie”);

}

więcej

{

Console.WriteLine ( „Błąd samochód nie został przeniesiony z rzutu skrętu w prawo to jest w tej chwili działania, jest to niemożliwe do wykonania ..”);

}

}

}

}