/ / Kapsulacija - što je to? Kapsulacija u programiranju

Što je enkapsulacija? Inkapsulacija u programiranju

Kapsulacija je jedna od tri glavneznačajke objektno orijentiranog programiranja (OOP). Druga dva su polimorfizam i nasljeđivanje. Zajedno čine OOP okvir koji definira niz mogućnosti za pisanje programa na različitim jezicima koristeći ova tri principa. Objektno orijentirani jezici, pak, moraju ih se jasno slijediti.

inkapsulacija je

Osnove OOP-a

Objektno orijentirano programiranje temelji se na tri stupa svog svemira:

  • Polimorfizam, koji odgovara na pitanje kako se određeni programski jezik na sličan način odnosi prema objektima koji su međusobno povezani.
  • Nasljeđivanje, koje daje odgovor na to kako se stimulira ponovna upotreba koda.
  • Inkapsulacija, što je odgovor na pitanje kako se skriva implementacija, a time i očuva integritet podataka.

terminologija

Inkapsulacija (programiranje) jekorištenje modifikatora pristupa kako bi se krajni korisnik sakrio dijelove programskog koda. To, pak, znači programer ili objekt nasljeđivanja.

koncepti inkapsulacije

Bit koncepta "inkapsulacije"

Definicija definira što je pod kapsulacijompodrazumijeva se skrivanje cijelog ili dijela programskog koda. Bit koncepta "inkapsulacije" je manipulacija modifikatorima pristupa. To znači da programer sam odlučuje koja će svojstva, metode i klase biti izložene klijentskoj klasi, a koje će biti skrivene.

Modifikatori pristupa

programiranje enkapsulacije
Postoje modifikatori pristupa kojima enkapsulacija (Java programiranje) može između ostalog manipulirati:

  • javni ("javni" - javni, otvoren, pristup) - javni pristup kako za trenutne predmete i klase, tako i za vanjski svijet;
  • privatni ("privatni" - privatni, privatni, skriveni pristup) - zatvoreni pristup, čija je suština potpuno suprotna prethodnoj. Pruža pristup samo iz trenutne klase;
  • zaštićeni ("zaštićeni" - zaštićeni, polusakriveni, pristup) - pristup trenutnoj klasi i njezinim izvedenicama;
  • zadani - neodređeni modifikator pristupa podrazumijeva da je polje / metoda vidljivo cijelom trenutnom paketu klase.

U jeziku C # ("C Sharp"), pored naznačenih (isključujući posljednji), postoje i takvi modifikatori:

  • interni ("interni" - interni pristup) - opća dostupnost u trenutnoj zbirci, zatvoreni pristup u svim ostalim slučajevima;
  • unutarnje zaštićeno ("unutarnje zaštićeno" - unutarnji zaštićeni pristup) - kombinacija dva modifikatora u jedan, u kojem se očituju svojstva oba.

Uloga inkapsulacije

Mehanizam enkapsulacije omogućuje vam isključivanje vanjskog utjecaja na programski kod i pogrešnu upotrebu podataka koji se u njemu nalaze. To čini kombiniranjem koda i podataka u jedinstvenu cjelinu.

primjer programiranja enkapsulacije

Predmet i inkapsulacija

Kombinirajući implementaciju softverskog modula ipodaci ugrađeni u kod nazivaju se objektom u programiranju. Bit njegove povezanosti s inkapsulacijom leži u činjenici da upravo takva tehnika omogućuje održavanje i osiguravanje cjelovitog funkcioniranja predmetnog mehanizma.

Prednost inkapsulacije

Inkapsulacija je način za pojednostavljenje postupka kodiranja. Brojni retci koda ostaju "iza kulisa", au glavnoj klasi se radi s objektnim instancama.

Ideja zaštite podataka

Kapsulacija je također mehanizam kojiprovodi ideju zaštite podataka. Programska logika objektno orijentiranog programiranja temelji se na činjenici da će većina podataka sakriti modifikator pristupa private (private) ili zaštićen (zaštićen). Vanjski svijet, klijent, slučajno ili namjerno, ne može oštetiti implementaciju softverskog modula. Budući da je to zapravo vrlo lako, čak i ako nije namjerno, inkapsulacija je vrlo dobar princip.

Jedinice za kapsulaciju

Razred, kao glavna jedinica kapsulacije,opisuje podatke i sadrži kôd koji može raditi s tim podacima. Također je osnova za izgradnju objekta. Potonji je pak predstavljen kao primjer klase.

enkapsulacija java programiranje
Također se koristi sljedeća terminologija:

  • članovi su kôd i podaci koji ulaze u razred;
  • polja ili varijable instance - ovo je naziv podataka koje klasa definira;
  • funkcije člana - sadrže sam kôd. Funkcije članova zajednički su naziv. Metode su poseban slučaj.

Kapsulacija s određenim primjerom

programiranje enkapsulacije je

Primjer enkapsulacije (programiranja):

* Bilješka:

opis je opis metode / svojstva / varijable, odnosno komentiranje onoga što se zapravo događa u programu. Demonstrirano oznakama otvoreno / zatvoreno

pomoću sustava;

prostor imena OOPLibrary.Auto

{

///

/// Ova je klasa namijenjena opisivanju svojstava i djelovanja automobila

///

javni razred Auto

{

///

/// Varijabla stvorena kako bi se u nju zapisalo koliko je automobil star, jer programer vanjske smetnje u ovom svojstvu smatra suvišnim

/// označen je privatnim modifikatorom, odnosno zatvorenim, privatnim pristupom (vidi opis gore).

///

privatni int _age;

///

/// logička varijabla (samo dvije moguće vrijednosti - bilo da ili ne) koja opisuje da li se automobil trenutno kreće

/// Također ne bi trebao biti otvoren za krajnjeg korisnika, tko god on bio. Zbog toga je ovoj varijabli dodijeljen modifikator privatnog pristupa "private".

///

private bool _isMoving;

///

/// Ova varijabla niza trebala bi sadržavati informacije o boji automobila. Može biti podložan promjenama zbog vanjskih utjecaja

/// stoga je za boju odabran "javni" modifikator otvorenog pristupa.

///

javni niz Boja;

///

/// U ovom konkretnom slučaju pretpostavljamo da se ime automobila također može promijeniti

/// dodijeljen je javni modifikator (otvoren pristup svima, bez obzira na klasu ili sklop).

///

javni niz Ime;

///

/// Konstruktor klase se otvara i sva svojstva izražena varijablama i postavljenim malo ranije dobivaju svoje vrijednosti

///

javni auto ()

{

_starost = 5;

_isMoving = false;

Boja = "Ljubičasta";

Name = "Škoda Octavia";

}

///

/// Metoda provodi povratak vrijednosti starosti automobila. Zašto je to potrebno?

/// modifikator privatnog pristupa sprječava da ga klijent mijenja.

///

/// Vraća starost automobila.

javni niz GetAge ()

{

return "Trenutno odabrani stroj" + _age + "star je godina.";

}

///

/// Ako se automobil ne kreće, ova metodaprovodi početak pokreta. Provjera se vrši na varijabli koja označava stanje automobila (vozi li se ili ne) i, ovisno o rezultatima, izvodi se odgovarajuća radnja / prikazuje se odgovarajuća poruka.

///

javna praznina Početak ()

{

if (_isMoving)

{

Console.WriteLine ("Pokret je već započeo");

}

drugo

{

_isMoving = true;

Console.WriteLine ("Spremni, pažnja .. Idemo! Idemo!");

}

}

///

/// Ako je pokretanje pokrenuto, tada ga ova metoda zaustavlja. Ista programska logika kao u prethodnom razmatranom slučaju.

///

javna praznina Stop ()

{

if (_isMoving)

{

_isMoving = false;

Console.WriteLine ("Stani, auto");

}

drugo

{

Console.WriteLine ("Pogreška. Auto već stoji mirno, ne miče se");

}

}

///

/// Skreće se ulijevo ako se vozilo kreće

///

javna praznina MoveLeft ()

{

if (_isMoving)

{

Console.WriteLine ("Napravio skretanje ulijevo");

}

drugo

{

Console.WriteLine ("Pogreška. Automobil miruje. Funkcija rotacije trenutno nije dostupna");

}

}

///

/// Slična metoda s okretanjem udesno

///

javna praznina MoveRight ()

{

if (_isMoving)

{

Console.WriteLine ("Skretanje udesno uspješno je izvedeno");

}

drugo

{

Console.WriteLine ("Pogreška. Automobil se još nije pomaknuo. Skretanje udesno trenutno je radnja koju nije moguće izvršiti.");

}

}

}

}