Absztrakció be Java

Miben rejlik az absztrakció Java?

Absztrakció az objektum-orientált programozás fogalma, amely csak a lényeges attribútumokat „mutatja”, és „elrejti” a szükségtelen információkat. Az absztrakció fő célja a szükségtelen részletek elrejtése a felhasználók elől. Az absztrakció egy nagyobb készletből választ ki adatokat, hogy csak az objektum releváns részleteit jelenítse meg a felhasználó számára. Segít csökkenteni a programozás bonyolultságát és erőfeszítéseit. Ez az OOP-k egyik legfontosabb fogalma.

Kattints itt ha a videó nem érhető el

Tanulmányozzuk az absztrakciót az OOP-ban egy példával:

Tegyük fel, hogy banki alkalmazást szeretne létrehozni, és a rendszer felkéri, hogy gyűjtsön össze minden információt az ügyfeléről. Valószínűleg a következő információkkal találkozik az ügyfélről

Absztrakció be Java
Absztrakció be Java

A banki alkalmazás létrehozásához azonban nem szükséges a fenti információk mindegyike. Tehát csak a hasznos információkat kell kiválasztania banki alkalmazás abból a medencéből. Az olyan adatok, mint a név, cím, adózási információk stb., értelmesek egy banki alkalmazás számára, amely absztrakciós példa az OOP-ban

Absztrakció be Java

Mivel az ügyféladatokat egy nagyobb készletből vettük/eltávolítottuk/választottuk ki, a folyamatot absztrakciónak nevezzük. OOP-k. Ugyanaz az információ azonban, ha egyszer kinyerjük, számos alkalmazáshoz felhasználható. Ugyanazokat az adatokat használhatja például kórházi jelentkezéshez, állásportál-jelentkezéshez, kormányzati adatbázishoz stb., csekély módosítással vagy anélkül. Ennélfogva ez lesz a törzsadatod. Ez az absztrakció előnye az OOP-ban.

Különbség az absztrakció és a kapszulázás között

Absztrakció Egységbezárás
Az objektumorientált programozás absztrakciója a tervezés szintjén oldja meg a problémákat. A beágyazás megoldja a megvalósítás szintjét.
Az absztrakció a programozásban a nem kívánt részletek elrejtését jelenti, miközben megjeleníti a legfontosabb információkat. A beágyazás azt jelenti, hogy a kódot és az adatokat egyetlen egységbe köti.
Adatabsztrakció be Java lehetővé teszi, hogy az információs objektumnak mit kell tartalmaznia Egységbezárás azt jelenti, hogy biztonsági okokból elrejti az objektum működésének belső részleteit vagy mechanikáját.

Az absztrakt osztály és az interfész közötti különbség

Absztrakt osztály Felület
Egy absztrakt osztálynak lehetnek absztrakt és nem absztrakt metódusai is. Az interfésznek csak absztrakt metódusai lehetnek.
Nem támogatja a többszörös öröklődést. Támogatja a többszörös öröklődést.
Biztosítani tudja az interfész megvalósítását. Nem tudja biztosítani az absztrakt osztály megvalósítását.
Egy absztrakt osztálynak lehetnek védett és absztrakt nyilvános metódusai. Egy interfésznek csak nyilvános absztrakt metódusai lehetnek.
Egy absztrakt osztálynak lehet végső, statikus vagy statikus végső változója bármilyen hozzáférési specifikációval. Az interfésznek csak publikus statikus végső változója lehet.

Mi az absztrakt osztály?

ABSZTRAKT OSZTÁLY egy osztálytípus Java, amelyek egy vagy több absztrakt módszert deklarálnak. Ezeknek az osztályoknak lehetnek absztrakt és konkrét metódusai is. Egy normál osztálynak nem lehetnek elvont metódusai. Az absztrakt osztály olyan osztály, amely legalább egy absztrakt metódust tartalmaz. A fogalmat a alakpélda java-ban.

Tekintsük a következő osztályhierarchiát, amely egy Shape osztályból áll, amelyet három osztály örökölt: Téglalap, Kör és Háromszög. A Shape osztályt úgy hozták létre, hogy megtakarítsák a Téglalap, Kör és Háromszög osztály által megosztott közös attribútumokat és metódusokat. A CalculateArea() egy ilyen módszer, amelyet mindhárom gyermekosztály megoszt, és jelen van a Shape osztályban.

Absztrakt osztály Java

Forma absztrakciós példa

Most tegyük fel, hogy kódot ír, hogy objektumokat hozzon létre a fent bemutatott osztályokhoz. Figyeljük meg, hogyan ezek a tárgyak gyakorlatias világban fognak kinézni. Az osztálytéglalap tárgya téglalapot ad, egy olyan alakzatot, amelyet oly gyakran megfigyelünk a mindennapi életben.

Absztrakt osztály

Az osztályháromszög egyik tárgya háromszöget ad, ismét egy hétköznapi alakzatot.

Absztrakt osztály

De hogyan nézne ki egy osztályforma tárgy egy gyakorlati világban?

Absztrakt osztály

Ha megfigyeled, a Shape osztály beáll célunk elérése öröklés és polimorfizmus. De nem példányosításra készült. Az ilyen osztályokat fel lehet címkézni Absztrakt. Egy absztrakt java osztályt nem lehet példányosítani.

Syntax:

abstract class Shape{
	// code
}

Lehetséges, hogy NEM jelöli meg a Shape osztályt Absztraktként, majd példányosítja. De az ilyen objektumnak nincs haszna a kódban, és teret nyit a lehetséges hibáknak. Ezért ez nem kívánatos.

Miben találhatók az absztrakt módszerek Java?

ABSZTRAKT MÓDSZER in Java, egy olyan metódus, amelynek csak a metódusdefiníciója van, de nem tartalmazza a megvalósítást. A test nélküli módszert absztrakt módszernek nevezik. Egy absztrakt osztályban kell deklarálni. Az absztrakt metódus soha nem lesz végleges, mert az absztrakt osztálynak meg kell valósítania az összes absztrakt metódust.

Mint mindannyian tudjuk, a téglalap, kör és háromszög területének kiszámításának képlete más. A CalculateArea() metódust felül kell írnia az öröklődő osztályoknak. Nincs értelme a Shape osztályban meghatározni, de meg kell győződnünk arról, hogy minden öröklődő osztály rendelkezik a metódussal.

Az ilyen módszereket fel lehet címkézni absztrakt.

Syntax:

abstract public void calculateArea();

Egy absztrakt módszer, nincs szükség megvalósításra. Csak a metódus aláírása van meghatározva.

Példa absztrakciós kódra

abstract class Shape{  
  abstract void calculateArea();  
}  
 class guru99 extends Shape{  
void calculateArea(){System.out.println("Area of Shape");}  
public static void main(String args[]){  
 Shape obj = new guru99();  
 obj.calculateArea();
}  
}

Az absztrakció előnyei

  • Az absztrakció használatának fő előnye Programozás az, hogy több kapcsolódó osztályt testvérként csoportosíthat.
  • Az absztrakció az objektumorientált programozásban segít csökkenteni a szoftver tervezési és megvalósítási folyamatának összetettségét.

Utolsó kulcsszó be Java

Az utolsó módosító az osztályokra, metódusokra és változókra vonatkozik. A végső jelentése kontextusonként változik, de a lényegi gondolat ugyanaz.

  • Az utolsó osztály nem örökölhető
  • A végső változó állandóvá válik, és értéke nem változtatható meg.
  • Egy végső módszert nem lehet felülírni. Ez biztonsági okokból történik, és ezeket a módszereket az optimalizáláshoz használják.

Példa :- Elvont és végső kulcsszavak megtanulása

Step 1) Másolja be a következő kódot egy szerkesztőbe.

abstract class Shape{
   final int b = 20;
   public void display(){
     System.out.println("This is display method");
   }
   abstract public void calculateArea();
}

public class Rectangle extends Shape{
   public static void main(String args[]){
      Rectangle obj = new Rectangle();
      obj.display();
     //obj.b=200;
  }
  //public void calculateArea(){}
}

Step 2) Mentse, fordítsa le és futtassa a kódot.

Step 3) Hiba =? Az absztrakt metódus nincs implementálva a Rectangle osztályban. A probléma megoldásához törölje a 15. sor megjegyzését.

Step 4) Megjegyzés: 13. sor. Mentse és fordítsa le a kódot.

Step 5) Hiba = ? a b változó végleges

Mikor kell használni az absztrakt módszereket és az absztrakt osztályt?

Az absztrakt metódusokat többnyire deklarálják, ahol két vagy több alosztály is ugyanazt a dolgot csinálja különböző módon, különböző megvalósításokon keresztül. Ugyanazt az Abstract osztályt is kiterjeszti, és az absztrakt metódusok különböző megvalósításait kínálja.

Az absztrakt osztályok segítenek leírni az általános viselkedéstípusokat és az objektumorientált programozási osztályhierarchiát. Leírja az alosztályokat is, hogy az absztrakt osztály megvalósítási részleteit kínálja.

Összefoglaló:

  • Az absztrakció a programozásban a fontos adatkészletek kiválasztásának folyamata egy tárgy szoftverében, és elhagyja a jelentékteleneket.
  • Miután modellezte az objektumot az adatabsztrakció segítségével Java, ugyanaz az adatkészlet különböző alkalmazásokban használható.