WYSZUKIWANIE NA STRONIE

Czym jest enkapsulacja? Enkapsulacja w programowaniu

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.

hermetyzacja jest

Podstawy OOP

Programowanie obiektowe opiera się na trzech filarach wszechświata:

  • Polimorfizm, odpowiadając na pytanie, jak określony język programowania traktuje obiekty, które mają ze sobą związek, w podobny sposób.
  • Dziedziczenie, które daje odpowiedź, jak wielokrotnie zachodzi stymulacja użycia kodu.
  • Hermetyzacja, która jest odpowiedzią na pytanie, w jaki sposób ukryte jest wdrożenie, a tym samym integralność danych zostaje zachowana.

Terminologia

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.

koncepcje enkapsulacji

Istota koncepcji "enkapsulacji"

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.

Modyfikatory dostępu

programowanie hermetyzacji
Istnieją takie modyfikatory dostępu, które między innymi mogą manipulować enkapsulacją (programowanie w języku Java):

  • publiczny (publiczny - publiczny, otwarty, dostęp) - wspólny dostęp zarówno do bieżących obiektów i klas, jak i do świata zewnętrznego;
  • prywatny ("prywatnie" - prywatny, prywatny, ukryty dostęp) - dostęp prywatny, którego istota jest całkowicie przeciwna do poprzedniej. Zapewnia dostęp tylko z bieżącej klasy;
  • chronione (chronione, pół-ukryte, dostęp) - dostęp dla bieżącej klasy i jej pochodnych;
  • Domyślnie nieokreślony modyfikator dostępu oznacza, że ​​pole / metoda jest widoczne dla całego pakietu bieżącej klasy.

W języku C # ("C Sharp"), oprócz określonych (z wyjątkiem tych ostatnich), wciąż istnieją takie modyfikatory:

  • wewnętrzna (wewnętrzna) - dostępność w aktualnym zbiorze, zamknięty dostęp dla wszystkich pozostałych przypadków;
  • internal protected ("internal protected access") - połączenie dwóch modyfikatorów w jeden, w którym przejawiają się właściwości obu z nich.

Rola enkapsulacji

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.

Przykład programowania enkapsulacji

Obiekt i enkapsulacja

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.

Zaleta enkapsulacji

Enkapsulacja to sposób na uproszczenie procesu kodowania. Liczne linie kodu pozostają "za kulisami", aw głównej klasie praca idzie z instancjami obiektów.

Idea ochrony danych

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ą.

Jednostki enkapsulacji

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.

programowanie hermetyzacji java
Stosowana jest również następująca terminologia:

  • członkowie to kod i dane zawarte w klasie;
  • pola lub zmienne instancji - tak zwane dane, które definiują klasę;
  • funkcje członkowskie - zawierają sam kod. Funkcje członkowskie to ogólna nazwa. Szczególnym przypadkiem są metody.

Hermetyzacja na konkretnym przykładzie

programowanie enkapsulacji jest

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>
  • Ocena: