Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
1. Skrytie údajov: Jadrom enkapsulácie je skrytie vnútorného stavu (údajov) objektu pred priamym prístupom vonkajším kódom. To sa dosahuje prostredníctvom modifikátorov prístupu (napríklad „súkromné“, chránené “a„ verejné “v mnohých jazykoch).
* súkromné: Členovia vyhlásení za „súkromné“ sú prístupné iba v rámci samotnej triedy. Žiadny externý kód, dokonca ani kód v rámci tej istej aplikácie, nemôže priamo manipulovať s týmito súkromnými členmi. Toto je najsilnejšia úroveň zapuzdrenia.
* chránené: Členovia vyhlásení za „chránené“ sú prístupní z samotnej triedy a z podtried (zdedených tried). To umožňuje kontrolovaný prístup z odvodených tried a zároveň chrániť údaje pred nesúvisiacimi časťami aplikácie.
* verejné: Členovia vyhlásení za „verejné“ sú prístupné odkiaľkoľvek v programe. To neponúka žiadnu ochranu a malo by sa používať striedmo. Verejní členovia často predstavujú rozhrania - spôsoby, ako externý kód interagovať s objektom bez toho, aby sa priamo dotýkali jeho interných údajov.
2. Metódy ako vrátnici: Namiesto priameho prístupu k súkromným údajom externý kód interaguje s objektom prostredníctvom svojich verejných metód. Tieto metódy pôsobia ako vrátnici, pričom riadia, ako sú prístupy k údajom prístupné a upravené.
`` `Java
verejný psa {
Private String názov; // zapuzdrené údaje
súkromný vek; // zapuzdrené údaje
verejný pes (názov reťazca, int vek) {
this.Name =name;
this.age =vek;
}
public String getName () {// getter metóda
návratový názov;
}
public void státie (int age) {// metóda setter
if (age> =0) {// Vstupné validácia
this.age =vek;
} else {
System.out.println ("Neplatný vek.");
}
}
public void Bark () {// Metóda prevádzka na údajoch
System.out.println (name + "hovorí woof!");
}
}
verejná trieda hlavná {
public static void main (String [] args) {
Pes MyDog =nový pes („Buddy“, 3);
System.out.println (myDog.getName ()); // Prístup k údajom prostredníctvom Getter
MyDog.SetAge (4); // Modifikácia údajov prostredníctvom settera
myDog.SetAge (-1); // Príklad validácie vstupu
myDog.bark ();
}
}
`` `
V tomto príklade sú „name“ a „vek“ súkromné, čo bránia priamej modifikácii. Externý kód ich môže pristupovať alebo zmeniť iba pomocou metód „getName ()` a `setAge ()`. Metóda `SetAge ()` tiež poskytuje validáciu vstupu, čím sa zabezpečuje, že vek nie je negatívny.
Výhody zapuzdrenia:
* Integrita údajov: Zabraňuje náhodnej alebo úmyselnej korupcii údajov.
* Údržba kódu: Zmeny internej implementácie triedy neovplyvňujú externý kód, pokiaľ verejné rozhranie zostáva konzistentné.
* opakovane použiteľnosť: Encapsulované triedy sa ľahšie opätovne používajú v rôznych častiach aplikácie alebo v iných projektoch.
* Zabezpečenie: Chráni citlivé údaje pred neoprávneným prístupom.
* modularita: Propaguje modulárny dizajn, vďaka čomu je kód organizovaný a ľahšie pochopiteľný.
Encapsulácia v podstate chráni interné fungovanie objektu, zlepšuje spoľahlivosť kódu, udržiavateľnosť a bezpečnosť ovládaním prístupu k jeho údajom a metódam. Je to základný kameň dobre štruktúrovaného a robustného softvéru.