Što je to encapsulation? Inkapsuliranje u programiranju

Kapsuliranje je jedna od tri glavne značajke objektno orijentirano programiranje (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, zahtijevaju da ih jasno prate.enkapsulacija je

OOP Osnove

Objektno orijentirano programiranje stoji na tri stupa svog svemira:

  • Polimorfizam, odgovarajući na pitanje kako određeni programski jezik tretira objekte koji imaju međusobne odnose, na sličan način.
  • Nasljeđivanje, koje daje odgovor, 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.
pojmovi enkapsulacije

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 koja će svojstva, metode i klase biti otvoreni za klijentsku klasu i koji su skriveni.

Modifikatori pristupa

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

  • javni (javni, javni, otvoreni, pristup) - zajednički pristup i za sadašnje 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"), osim navedenog (osim potonjeg), još uvijek postoje takvi modifikatori:

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

Uloga zatvaranja

Mehanizam inkapsulacije omogućuje vam 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.
programiranje kapsuliranja

Objekt i enkapsulacija

Kombinacija implementacije programskog modula i podataka ugrađenih u kod u programiranju naziva se objektom. Bit njegove povezanosti s enkapsulacijom leži u činjenici da je ta tehnika koja omogućuje održavanje i osiguranje cjelovitosti mehanizma o kojem je riječ.

Prednost inkapsulacije

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

Ideja zaštite podataka

Inkapsulacija 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 kapsuliranje

Klasa, kao osnovna jedinica inkapsulacije, opisuje podatke i sadrži kôd koji je sposoban za rad s tim podacima. To je također baza za izgradnju objekta. Potonji je, pak, predstavljen kao primjer klase.

programiranje encapsulation javaTakođ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;
  • funkcije članova - one sadrže sam kod. Članske funkcije su opće ime. Poseban slučaj su metode.

Inkapsulacija na konkretnom primjeru

programiranje kapsula je

Primjer encapsulacije (programiranje):

* Napomena:

opis je opis metode / svojstva / varijable, odnosno komentiranje onoga što se zapravo događa u programu. Pokazano s oznakama otvaranja / zatvaranja

pomoću sustava-

imenik OOPLibrary.Auto

{

///

/// Ovaj razred namijenjen je opisivanju svojstava i djelovanja automobila

///

auto javnog razreda

{

///

/// Varijabla stvorena da piše na njemu, koliko je star auto, budući da je razvojni programer smatrao da je vanjska intervencija na ovo svojstvo 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 smije 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).

///

javni niz Naziv-

///

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

///

javni auto ()

{

_age = 5-

_isMoving = false-

Boja = "Purple" -

Ime = "Skoda Octavia" -

}

///

/// Metoda provodi povratnu vrijednost doba automobila. Zašto je to potrebno?

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

///

/// Vraća starost automobila.

javni niz GetAge ()

{



povratak "Trenutno odabrani uređaj je" + godina + "godina." -

}

///

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

///

javni prazni početak ()

{

ako (_isMoving)

{

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

}

drugo

{

_isMoving = true-

Console.WriteLine ("Za početak, pažnja .. Naprijed, idemo!") -

}

}

///

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

///

javni praznik Stop ()

{

ako (_isMoving)

{

_isMoving = false-

Console.WriteLine ("Stop, Machine") -

}

drugo

{

Console.WriteLine ("Pogreška: automobil je još uvijek na mjestu, ne krene") -

}

}

///

/// Okrenite lijevo ako postoji kretanje vozila

///

javna praznina MoveLeft ()

{

ako (_isMoving)

{

Console.WriteLine ("skrenite lijevo") -

}

drugo

{

Console.WriteLine ("Pogreška: vozilo je mirno, funkcija rotacije trenutno nije dostupna") -

}

}

///

/// Slična metoda s rotacijom desno

///

javni prazni MoveRight ()

{

ako (_isMoving)

{

Console.WriteLine ("Okretanje udesno je uspješno izvedeno") -

}

drugo

{

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

}

}

}

}

Dijelite na društvenim mrežama:

Povezan
Strukturirana programiranjeStrukturirana programiranje
Objektno orijentirano programiranje (OOP): polimorfizamObjektno orijentirano programiranje (OOP): polimorfizam
Kako naučiti programiranje od nule na popularnim programskim jezicimaKako naučiti programiranje od nule na popularnim programskim jezicima
Programiranje mikrokontrolera za početnike: jednostavno i pristupačnoProgramiranje mikrokontrolera za početnike: jednostavno i pristupačno
Programiranje od nule: gdje početi? Kako početi učiti programiranje od nule na Java jeziku?Programiranje od nule: gdje početi? Kako početi učiti programiranje od nule na Java jeziku?
Ciklus s postcondition i petlja s preduvjetomCiklus s postcondition i petlja s preduvjetom
Što je OOP? Osnovni principi objektno orijentiranog programiranjaŠto je OOP? Osnovni principi objektno orijentiranog programiranja
Sažetak klasa i metoda: opis, karakteristike i značajke. Koja je razlika između apstraktne klase i…Sažetak klasa i metoda: opis, karakteristike i značajke. Koja je razlika između apstraktne klase i…
jаvascript: typeof - potreba ili nove značajkejаvascript: typeof - potreba ili nove značajke
jаvascript: primjeri primjenejаvascript: primjeri primjene
» » Što je to encapsulation? Inkapsuliranje u programiranju
LiveInternet