Kapszulázás Java-ba - Hogyan lehet elsajátítani az OOP-kat kapszulázással?



Ez a Java-beágyazásról szóló cikk segít megérteni a megvalósítás részleteinek elrejtésének alapvető fogalmait és a különböző egyszerű példákat.

Az objektumorientált programozás vagy ismertebb nevén OOP a Java egyik fő pillére, amely kihasználta erejét és egyszerű használatát. Ahhoz, hogy profi Java-fejlesztővé válhasson, hibátlan ellenőrzést kell kapnia a különféle felett tetszik , Absztrakció , Tokozás és polimorfizmus. Ennek a cikknek a segítségével teljes betekintést nyújtok az OOP-k egyik legfontosabb koncepciójába, azaz a Java-ba történő beágyazásba és annak megvalósításába.

Az alábbiakban a témákat tárgyalom ebben a cikkben:





Ön is átnézheti ezt a felvételt ahol példákkal részletesen megértheti a témákat.



Bevezetés a beágyazásba

A beágyazás az adatok egyetlen egység alá történő becsomagolására utal. Ez az a mechanizmus, amely megköti a kódot és az általa manipulált adatokat. A kapszulázás gondolkodásának másik módja az, hogy ez egy védőpajzs, amely megakadályozza az adatokhoz való hozzáférést a pajzson kívüli kóddal. Ebben az a változói vagy adatai el van rejtve bármely más osztály elől, és csak a saját osztály bármely tagfüggvényén keresztül érhető el, amelyben deklarálják őket.

Vegyünk egy orvosi kapszula példáját, ahol a gyógyszer mindig biztonságos a kapszula belsejében. Hasonlóképpen, a kapszulázás révén az osztály módszerei és változói jól el vannak rejtve és biztonságosak.



Kapszulázás - Kapszulázás Java-Edureka-banA Java-ba történő beágyazás az alábbiak révén érhető el:

  • Egy osztály változóinak nyilvánítása privátként.
  • Nyilvános szetter és getter módszerek biztosítása a változók értékeinek módosítására és megtekintésére.

Most nézzük meg a kódot, hogy jobban megértsük a beágyazást:

public class Student {private String name public String getName () {return name} public void setName (String name) {this.name = name}} class Test {public static void main (String [] args) {Student s = new Student () s.setName ('Harry Potter') System.out.println (s.getName ())}}

Amint a fenti kódban láthatod, létrehoztam egy osztályos diákot, amelynek privát tagja van név . Ezután létrehoztam egy betűt és beállítót, hogy megszerezzem és beállítsam egy hallgató nevét. Ezen módszerek segítségével minden olyan osztálynak, amely hozzáférni akar a névváltozóhoz, ezeket a getter és setter módszerekkel kell megtennie.

Lássunk még egy példát, és ismerjük meg mélyebben a Kapszulázást. Ebben a példában az Autó osztálynak két mezője van - név és topSpeed. Itt mindkettőt magánjellegűnek nyilvánítják, vagyis nem érhetők el közvetlenül az osztályon kívül. Van néhány getter és setter módszerünk, például getName, setName, setTopSpeed ​​stb., És nyilvánosnak nyilvánítjuk őket. Ezek a módszerek „kívülállóknak” vannak kitéve, és felhasználhatók adatok módosítására és lekérésére a Car objektumból. Egy módszerünk van a jármű maximális sebességének beállítására, és két jobb módszerrel megkapjuk a maximális sebesség értékét MPH-ban vagy KMHt-ban. Tehát alapvetően ezt teszi a kapszulázás - elrejti a megvalósítást és megadja nekünk a kívánt értékeket. Most nézzük meg az alábbi kódot.

csomag Edureka public class Car {private String name private double topSpeed ​​public Car () {} public String getName () {return name} public void setName (String name) {this.name = name} public void setTopSpeed ​​(double speedMPH) {topSpeed = speedMPH} public double getTopSpeedMPH () {return topSpeed} public double getTopSpeedKMH () {return topSpeed ​​* 1.609344}}

Itt a fő program létrehoz egy Car névre keresztelt objektumot, és a setter módszerrel tárolja a maximális sebességet ehhez a példányhoz. Ezzel könnyen megkapjuk a sebességet MPH-ban vagy KMH-ban anélkül, hogy törődnénk azzal, hogy hogyan alakítják át a sebességet a Car osztályban.

csomag Edureka public class Példa {public static void main (String args []) Autó autó = new Car () car.setName ('Mustang GT 4,8 literes V8') car.setTopSpeed ​​(201) System.out.println (autó. getName () + 'a maximális sebesség az MPH-ban' + car.getTopSpeedMPH ()) System.out.println (car.getName () + 'csúcssebesség KMH-ban' + car.getTopSpeedKMH ())

So, így érhető el a beágyazás a Java-ban. Most lépjünk tovább, és nézzük meg, miért van szükségünk beágyazásra.

Miért van szükség a Java beágyazására?

A beágyazás elengedhetetlen a Java-ban, mert:

  • Ellenőrzi az adatok hozzáférhetőségének módját
  • A kódot a szükséges adatok alapján módosítja
  • Segít nekünk egy laza pár elérésében
  • Eléri az alkalmazásunk egyszerűségét
  • Ez lehetővé teszi a kód részének megváltoztatását anélkül, hogy bármilyen más funkciót vagy kódot megszakítana a programban

Vegyünk egy kis példát, amely szemlélteti a beágyazás szükségességét.

osztály Student {int id String name} nyilvános osztály Demo {public static void main (String [] args) {Student s = new Student () s.id = 0 s.name = 's.name = null}}

A fenti példában két példányváltozót tartalmaz hozzáférés-módosítóként. Tehát ugyanazon csomagon belül bármely osztály hozzárendelheti és megváltoztathatja ezeknek a változóknak az értékét azáltal, hogy létrehoz egy adott osztály objektumát. Így nincs kontrollunk a Student osztályban változóként tárolt értékek felett. Ennek a problémának a megoldása érdekében a Diák osztályt összefoglaljuk.

Tehát ez volt az a néhány mutató, amely leírja a beágyazás szükségességét. Most nézzük meg a kapszulázás néhány előnyét.

sekély és mély másolat Java-ban

A beágyazás előnyei

    • Adatok elrejtése: Itt a felhasználónak fogalma sincs az osztály belső megvalósításáról. Még a felhasználó sem lesz tisztában azzal, hogy az osztály hogyan tárolja az értékeket a változókban. Csak akkor lesz tisztában azzal, hogy az értékeket átadjuk egy szetter módszernek, és a változók inicializálódnak ezzel az értékkel.
    • Fokozott rugalmasság: Itt a követelményektől függően az osztály változóit írásvédetté vagy csak írhatóvá tehetjük. Ha a változókat csak olvashatóvá szeretné tenni, akkor el kell hagynunk a szetter metódusokat, mint a setName (),setAge() stb., vagy ha a változókat csak írhatóvá szeretnénk tenni, akkor el kell hagynunk a get programokat, mint például a getName (), getAge () stb.
    • Újrahasználhatóság: Ez javítja az újrafelhasználhatóságot, és az új követelményekkel könnyen megváltoztatható.

Most, hogy megértettük a kapszulázás alapjait, merüljünk bele a cikk utolsó témájába, és valós idejű példa segítségével ismerjük meg részletesen a Kapszulázást.

Valós idejű példa a beágyazásra

Vegyünk egy televíziós példát, és értsük meg, hogyan rejtik el a belső megvalósítás részleteit a külső osztály elől.Alapvetően ebben a példában a belső kódadatokat, azaz a külső világból származó áramköröket rejtjük el a fedél által. Most , ez hozzáférés-módosítók segítségével érhető el. A hozzáférés-módosítók megadják az osztály hozzáférését vagy szintjét, a konstruktor változókat stb. A privátnak nyilvánított változók csak a Televízió osztályon belül érhetők el.

nyilvános osztályú televízió {privát dupla szélességű privát dupla magasságú privát dupla képernyőméret magán int maxTérfogat nyomtatási int mennyiség privát logikai teljesítményű nyilvános televízió (dupla szélesség, dupla magasság, dupla screenSize) {this.width this.height this.screenSize = ScreenSize} nyilvános dupla csatorna (int csatorna) {kapcsoló (csatorna) {eset1: visszatérés 34,56 eset2: visszatérés 54,89 eset3: visszatérés 73,89 eset1: visszatérés 94,98} visszatérés 0} nyilvános int csökkentésKötet () {if (0mennyiség) kötet ++ visszatérési térfogat}} osztályteszt {public static void main (String args []) {Television t = new Television (11.5,7,9) t.powerSwitch () t.channelTuning (2) t.decreaseVolume () t.increaseVolume () television. // Hiba, mivel a változó privát, és nem érhető el az osztályon kívül}}

A fenti példában az összes változót privátnak, a módszereket, a konstruktort és az osztályt pedig nyilvánosnak nyilvánítottam. Itt konstruktorok, módszerek érhetők el az osztályon kívül. Amikor alkotokegy tárgytelevízió osztályhoz hozzáférhet az osztályban jelenlévő módszerekhez és konstruktorokhoz, míg a privát hozzáférés módosítóval deklarált változók rejtve vannak. Ezért próbál hozzáférni szélesség változó a fenti példában dobegy hiba. Így vannak elrejtve a belső implementáció részletei a többi osztály elől. Így érhető el a beágyazás a Java-ban.

Ezzel eljutottunk a „Java beágyazása” című cikkünk végéhez. Remélem, informatívnak találta, és hozzáadott értéket adott hozzá ismereteihez. Ha többet szeretne megtudni a Java-ról, olvassa el a

Most, hogy megértette „mi az a Java-beágyazás”, nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Az Edureka Java J2EE és SOA képzési és tanúsítási tanfolyamát olyan hallgatók és szakemberek számára tervezték, akik Java fejlesztők szeretnének lenni. A tanfolyamot úgy tervezték meg, hogy előrelépést nyújtson a Java programozásban, és képezze mind az alapvető, mind a fejlett Java koncepciókhoz, valamint a különböző Java keretrendszerekhez, például a Hibernate & Spring.

Van egy kérdésünk? Kérjük, említse meg ennek a „Encapsulation in Java” blognak a megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.