RačunalaProgramiranje

Što je to encapsulacija? Inkapsuliranje u programiranju

Encapsulation je jedna od tri glavne značajke objektno orijentiranog programiranja (OOP). Druga dva su polimorfizam i nasljedstvo. Zajedno čine osnovu PLO-a, koji određuje čitav niz mogućnosti za pisanje programa na različitim jezicima, koristeći ova tri načela. Jezici usmjereni na objekte, zauzvrat, moraju se jasno pratiti.

OOP Osnove

Objektno orijentirano programiranje stoji na tri stupa svoga svemira:

  • Polimorfizam, reagirajući na pitanje kako određeni programski jezik tretira objekte koji imaju međusobne odnose, na sličan način.
  • Nasljeđivanje, davanje odgovora, kako se stimulacija upotrebe koda ponavlja.
  • Encapsulation, što je odgovor na pitanje kako je implementacija skrivena, a time i cjelovitost podataka sačuvana.

terminologija

Encapsulation (programiranje) je korištenje modifikatora pristupa za skrivanje dijelova koda od krajnjeg korisnika. Pod njom, zauzvrat, znači razvojni programer ili nasljedni objekt.

Bit pojma "inkapsulacije"

Definicija definira da kapsuliranje znači skrivanje cijelog ili dijela koda. Bit pojma "inkapsulacije" je manipulacija modifikatorima pristupa. To znači da sam razvojni program odlučuje koje će se svojstva, metode i klase otvoriti klasi klijenta, a koje su skrivene.

Modifikatori pristupa

Postoje takvi modifikatori pristupa koji, između ostalog, mogu manipulirati inkapsulacijom (Java programiranje):

  • Javni (javno - javni, otvoreni, pristup) - zajednički pristup i za trenutne objekte i klase, a za vanjski svijet;
  • Privatni ("privatno" - privatni, privatni, skriveni pristup) - privatni pristup, čija je suština potpuno suprotna prethodnom. Omogućuje pristup samo iz trenutne klase;
  • Zaštićeni (zaštićeni, polu-skriveni, pristupni) pristup za sadašnju klasu i njegove derivate;
  • Prema zadanim postavkama, neodređeni pristupni modifikator podrazumijeva da je polje / metoda vidljiva za cijeli paket trenutne klase.

U C # ("C Sharp"), pored navedenog (osim potonjeg), još uvijek postoje takvi modifikatori:

  • Unutarnja (interna) - dostupnost u trenutnoj zbirci, zatvoreni pristup za sve ostale slučajeve;
  • Unutarnji zaštićeni ("unutarnji zaštićeni pristup") - kombinacija dva modifikatora u jednu, u kojoj se očituju svojstva obje vrste.

Uloga zatvaranja

Mehanizam za enkapsuliranje omogućuje isključivanje vanjskog utjecaja na programski kod i pogrešnu upotrebu podataka ugrađenih u njega. To se postiže kombinacijom koda i podataka u jednu.

Objekt i enkapsulacija

Kombinacija implementacije programskog modula i podataka ugrađenih u kod u programiranju naziva se objektom. Suština njegove povezanosti s inkapsulacijom leži u činjenici da je ta tehnika koja omogućuje održavanje i osiguranje integralnog funkcioniranja mehanizma o kojemu je riječ.

Prednost inkapsulacije

Enkapsuliranje je način pojednostavljenja procesa kodiranja. Brojne linije koda ostaju "iza kulisa", a u glavnom razredu rada dolazi s primjerima objekata.

Ideja zaštite podataka

Encapsulation je također mehanizam koji provodi ideju zaštite podataka. Programska logika objektno orijentiranog programiranja temelji se na činjenici da privatni pristup privatnim (privatnim, privatnim) ili zaštićenim (zaštićenim) skriva većinu podataka. Vanjski svijet, klijent slučajno ili namjerno ne može oštetiti primjenu softverskog modula. Budući da je to vrlo lako učiniti čak i namjerno, inkapsulacija je vrlo dobar princip.

Jedinice za inkapsulaciju

Klasa, kao osnovna jedinica inkapsulacije, opisuje podatke i sadrži kôd koji je sposoban za rad s tim podacima. Također je baza za gradnju objekta. Potonji, zauzvrat, zastupljen je kao primjer klase.

Također se koristi sljedeća terminologija:

  • Članovi su kôd i podaci uključeni u klasu;
  • Polja ili varijable instance - tzv. Podaci koji definiraju klasu;
  • Član funkcije-oni sadrže kod sebe. Članske su funkcije opće ime. Poseban slučaj su metode.

Encapsulacija na konkretnom primjeru

Primjer encapsulacije (programiranje):

* Napomena:

Opis je opis metode / svojstva / varijable, odnosno komentiranje onoga što se zapravo događa u programu. Pokazano pomoću otvaranja / zatvaranja oznaka

Korištenje sustava;

Imenski prostor OOPLibrary.Auto

{

///

/// Ova klasa je dizajnirana za opisivanje svojstava i djelovanja automobila

///

Javni razred Auto

{

///

/// Varijabla stvorena da piše na njemu, koliko je godina automobil, budući da je razvojni programer smatrao da je vanjska intervencija u toj nekretnini suvišna

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

///

Privatni int _age;

///

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

/// Također ne bi trebao biti otvoren krajnjem korisniku, tko god bio. Stoga, ova varijabla dodjeljuje privatni modifikator pristupa "privatnom"

///

Privatni bool _isMoving;

///

/// Ova varijabla stringa mora sadržavati informacije o boji automobila. Može biti podložan promjenama od vanjskih utjecaja

/// jer je za boju odabran javni modifikator pristupa "javno".

///

Javni niz Boja;

///

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

/// dodjeljuje javni modifikator (javni pristup za sve, bez obzira na razred ili skup).

///

Naziv javnog niza;

///

/// Klasni konstruktor je otvoren, a sva svojstva koja izražavaju varijable i navedene ranije, dobivaju njihove vrijednosti

///

Javni auto ()

{

_age = 5;

_isMoving = netočno;

Boja = "Purple";

Ime = "Skoda Octavia";

}

///

/// Metoda provodi povratak dobne vrijednosti auto. Zašto je to potrebno?

/// modifikator privatnog pristupa ne omogućuje klijentu da ga promijeni.

///

/// Vraća starost automobila.

Javni niz GetAge ()

{

Povratak "Trenutačno odabrani stroj je" + godina + "godina.";

}

///

/// Ako se automobil ne pomakne, ova metoda provodi početak kretanja. Provjerava se varijabla koja označava stanje automobila (bez obzira kretala li se ili ne), i, ovisno o rezultatima, izvršava se odgovarajuća akcija / prikazuje se odgovarajuća poruka.

///

Javno poništavanje Pokreni ()

{

Ako je (_isMoving)

{

Console.WriteLine ("Pokret je već pokrenut");

}

drugo

{

_isMoving = istinit;

Console.WriteLine ("Za početak, pozornost .. Naprijed, idemo!");

}

}

///

/// Ako je pokret pokrenut, tada ta metoda zaustavlja. Ista logika programiranja kao u prethodnom slučaju.

///

Javni praznik Stop ()

{

Ako je (_isMoving)

{

_isMoving = netočno;

Console.WriteLine ("Stop, stroj");

}

drugo

{

Console.WriteLine ("Pogreška: automobil je već na mjestu, ne krene");

}

}

///

/// Okrenite lijevo ako postoji kretanje vozila

///

Javna praznina MoveLeft ()

{

Ako je (_isMoving)

{

Console.WriteLine ("Okrenuta lijevo");

}

drugo

{

Console.WriteLine ("Pogreška: automobil je miran, funkcija rotacije trenutačno nije dostupna");

}

}

///

/// Slična metoda s rotacijom desno

///

Javni praznik MoveRight ()

{

Ako je (_isMoving)

{

Console.WriteLine ("Okretanje je uspješno");

}

drugo

{

Console.WriteLine ("Pogreška: automobil se još nije preselio." Okretanje desno trenutno je nemoguće. ");

}

}

}

}

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 hr.birmiss.com. Theme powered by WordPress.