Java absztrakció - OOP elsajátítása absztrakcióval a Java-ban



Ez a Java-absztrakcióról szóló cikk segít megérteni az Abstract osztály és az interfész használatát, valamint azt, hogy miként érhető el absztrakcióval.

Az előző blogban megtudta Java-ban. Ebben a blogban meg fogjuk érteni még egy fontos pillérét azaz Java absztrakció, amelynek fő funkciója a belső megvalósítási részletek elrejtése.

A cikk alábbi témáival foglalkozom:





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



Absztrakció az OOP-ban

Amikor általában az absztrakcióról beszélünk, a szoftver nyelve az Absztrakció példája. Vegyünk egy példát, és írjunk egy nyilatkozatot

x = y + z

hogyan lehet beállítani az osztályútvonalat a linuxban

A fenti utasításban két változót adunk hozzá, amelyeket két különböző helyen tárolunk, majd az eredményt egy új helyen tároljuk. Szóval mi lesz ezután? Mint tudhatja, vannak regiszterek, utasításkészletek, programszámlálók, tároló egységek stb. Amikor az absztrakcióra hivatkozunk a Java-ban, akkor a absztrakcióról beszélünk és hogyan érhető el. Az absztrakció fogalma az OOP-ban éppen abban a pillanatban indul, amikor egy osztály kialakul. Az absztrakciót mindenhol alkalmazzák a szoftverekben és az OOP-ban.



Mi a Java absztrakció?

Az absztrakció nem más, mint az ötletekkel való foglalkozás minősége, nem pedig az események. Alapvetően a belső részletek elrejtésével és a lényeges dolgok megmutatásával foglalkozik a felhasználó számára.

Hívás - Java absztrakció -Edureka

Ha megnézi a fenti gif-et, láthatja, amikor hívást kap, kapunk egy lehetőséget, hogy vagy vegye fel, vagy csak utasítsa el. De a valóságban nagyon sok kód fut a háttérben. Tehát itt nem ismeri a hívás generálásának belső feldolgozását, ez az absztrakció szépsége. Az absztrakciót kétféleképpen érheti el:

a) Absztrakt osztály

b) Interfész

Értsük meg ezeket a fogalmakat részletesebben.

Absztrakt osztály

Az absztrakt osztály tartalmazza az „absztrakt” kulcsszót. De mit is jelent pontosan? Ha absztraktvá teszi az osztályt, akkor azt nem lehet példányosítani, vagyis nem hozhat létre absztrakt osztály objektumát. Ezenkívül egy absztrakt osztály tartalmazhat elvont és konkrét módszereket is.

Jegyzet: Absztrakt osztály segítségével 0-100% absztrakciót érhet el.

Absztrakt osztály használatához meg kell örökölnie az alaposztálytól. Itt meg kell adnia az absztrakt módszerek megvalósítását, különben absztrakt osztály lesz belőle.

Nézzük meg egy absztrakt osztály szintaxisát:

Absztrakt osztály Sport {// absztrakt osztály sport Absztrakt void jump () // absztrakt módszer}

Felület

A Java felület egy absztrakt módszerek és statikus állandók gyűjteménye. Amint azt egy felületen lehet tudni, minden módszer nyilvános és absztrakt, de nem tartalmaz konstruktort. Az absztrakcióval együtt az interfész a Java öröklődésének elérését is segíti.
Jegyzet: Felületek használatával 100% absztrakció érhető el.

Alapvetően az Interface a kapcsolódó módszerek csoportja üres testekkel. Értsük meg az interfészeket úgy, hogy példát vessünk egy Shape interfészre és a hozzá kapcsolódó módszerekre.

nyilvános felület alakja {public void draw () public double getArea ()}

Ezeknek a módszereknek minden „alakban” jelen kell lenniük, igaz? De a munkájuk más lesz.

Tegyük fel, hogy alakot akarsz rajzolni, mondjuk kört, négyzetet, téglalapot stb. Tudod, hogy minden alaknak megvan a maga mérete, például sugara, magassága és szélessége. Mondjuk, hogy kört akarok rajzolni, és kiszámítom annak területét. Ugyanezt figyelembe véve két módszert hoztam létre a fenti kódban, azaz a draw () és a getArea (). Ezekkel a módszerekkel most bármilyen alakzatot megrajzolhatok, és az interfészének megvalósításával kiszámolhatom a területet.

Most vizsgáljuk meg a funkcionalitást, hogyan lehet ezt a felületet megvalósítani.
Ennek a felületnek a megvalósításához az osztályod neve bármelyik Shape-ra változik, mondjuk „Kör” -re. Tehát az osztályfelület megvalósításához felhasználom az „implement” kulcsszót:

public class Circle megvalósítja az alakzatot {private double radius public Circle (double r) {this.radius = r} void draw () {System.out.println ('Drawing Circle')} public double getArea () {return Math.PI * this.radius * this.radius} public double getRadius () {return this.radius}} public class Test {public static void main (String args []) {Shape c = new Circle (8) c.draw () System. out.println ('Terület =' + c.getArea ())}}

A fenti példában meghatároztam a kör különböző módszereinek és kiszámított területének a funkcionalitását. Itt, egy interfész megvalósításakor, ez lehetővé teszi az osztály számára, hogy formálisabbá váljon az általa nyújtott viselkedéssel kapcsolatban. Létrehozhat egy másik osztályt is, mondjuk a „Rectangle” osztályt, amely ugyanazt az interfész „alakot” örökölheti különböző funkciókkal.

Valós idejű példa az java absztrakcióra

Tegyük fel, hogy a Sport felületünk. Itt a megvalósítást a „tollaslabda” és a „futball” osztályok biztosítják. Valódi forgatókönyv esetén a végfelhasználó nem ismeri a megvalósítási osztályt. Ennélfogva a megvalósítási osztály egy objektuma megadható a gyári módszerrel. A gyári módszer segítségével valamilyen kritérium alapján létrehozhatunk egy megvalósítási osztály objektumot.
Végezzük el ugyanezt, és hozzunk létre egy felületet a Sport.java néven.

public Interface Sport {void play ()} // Most létrehozunk egy „tollaslabda” nevű osztályt. nyilvános osztályú tollaslabda megvalósítja a Sportot {@Orride public void play () {System.out.println ('tollaslabda játék')}} // Következő lépésként hozzuk létre az utolsó osztályú „Labdarúgás” nyilvános osztályt A futball megvalósítja a Sportot {@Orride public void play () {System.out.println ('Futballozni')}

Az utolsó lépés egy „SportInterface” nevű főosztály létrehozása.

public SportInterface {public static void main (String args []) {// itt a kódod}

A fenti program végrehajtásakor a kimenet az alábbiak szerint alakul:

Tollaslabda játék ------------------- Focizni

Remélem, srácok tisztában vannak a kezelőfelülettel és annak használatával, hogyan érhetik el az absztrakciót. Most fejezzük be ezt a cikket az absztrakció és a beágyazás összehasonlításával.

Absztrakció vs beágyazás

Absztrakció Egységbezárás
Megoldja a problémát tervezési szintenMegoldja a problémát a megvalósítás szintjén
Nemkívánatos adatok elrejtésére és releváns eredmények megadására szolgálA beágyazás a kód és az adatok egyetlen egységbe rejtését jelenti, hogy megvédje az adatokat a külvilágtól
Külső elrendezés - a tervezés szempontjából használjákBelső elrendezés - a megvalósítás szempontjából használják

Remélem, megértette az absztrakció és a kapszulázás közötti különbséget. Ezzel véget értünk a Java Abstraction blogon. 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 a Java absztrakció”, 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 a „Java Abstraction” blog megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.