Abstraktion in Java

Vad är abstraktion i Java?

Abstraktion är konceptet med objektorienterad programmering som endast "visar" väsentliga attribut och "gömmer" onödig information. Huvudsyftet med abstraktion är att dölja onödiga detaljer för användarna. Abstraktion är att välja data från en större pool för att endast visa relevanta detaljer om objektet för användaren. Det hjälper till att minska programmeringskomplexiteten och ansträngningarna. Det är ett av de viktigaste koncepten för OOPs.

Klicka här. om videon inte är tillgänglig

Låt oss studera abstraktion i OOPs med exempel:

Anta att du vill skapa en bankapplikation och du uppmanas att samla in all information om din kund. Det finns chanser att du kommer med följande information om kunden

Abstraktion in Java
Abstraktion in Java

Men inte all ovanstående information krävs för att skapa en bankapplikation. Så du behöver bara välja användbar information för din bankapplikation från den poolen. Data som namn, adress, skatteinformation etc. är meningsfulla för en bankapplikation som är ett abstraktionsexempel i OOPs

Abstraktion in Java

Eftersom vi har hämtat/ tagit bort/valt ut kundinformationen från en större pool kallas processen Abstraktion i Hoppsan. Men samma information när den väl har extraherats kan användas för ett brett spektrum av tillämpningar. Till exempel kan du använda samma data för sjukhusansökan, jobbportalansökan, en statlig databas, etc. med liten eller ingen modifiering. Därför blir det din masterdata. Detta är en fördel med abstraktion i OOPs.

Skillnaden mellan abstraktion och inkapsling

Abstraktion inkapsling
Abstraktion i objektorienterad programmering löser problemen på designnivå. Inkapsling löser implementeringsnivån.
Abstraktion i programmering handlar om att dölja oönskade detaljer samtidigt som den mest väsentliga informationen visas. Inkapsling innebär att binda koden och data till en enda enhet.
Dataabstraktion i Java gör det möjligt att fokusera på vad informationsobjektet måste innehålla inkapsling innebär att dölja de interna detaljerna eller mekaniken för hur ett objekt gör något av säkerhetsskäl.

Skillnaden mellan abstrakt klass och gränssnitt

Abstrakt klass Gränssnitt
En abstrakt klass kan ha både abstrakta och icke-abstrakta metoder. Gränssnittet kan bara ha abstrakta metoder.
Det stöder inte flera arv. Det stöder flera arv.
Det kan tillhandahålla implementeringen av gränssnittet. Det kan inte ge implementeringen av den abstrakta klassen.
En abstrakt klass kan ha skyddade och abstrakta offentliga metoder. Ett gränssnitt kan bara ha offentliga abstrakta metoder.
En abstrakt klass kan ha slutlig, statisk eller statisk slutvariabel med vilken åtkomstspecifikation som helst. Gränssnittet kan endast ha en offentlig statisk slutvariabel.

Vad är abstrakt klass?

ABSTRAKT KLASS är en typ av klass i Java, som deklarerar en eller flera abstrakta metoder. Dessa klasser kan ha såväl abstrakta metoder som konkreta metoder. En normal klass kan inte ha abstrakta metoder. En abstrakt klass är en klass som innehåller minst en abstrakt metod. Vi kan förstå konceptet av formexempel i java.

Betrakta följande klasshierarki som består av en Shape-klass som ärvs av tre klasser rektangel, cirkel och triangel. Klassen Shape skapas för att spara på vanliga attribut och metoder som delas av de tre klasserna Rectangle, Circle och Triangle. calculateArea() är en sådan metod som delas av alla tre barnklasser och finns i Shape-klassen.

Abstrakt klass i Java

Exempel på formabstraktion

Antag nu att du skriver kod för att skapa objekt för klasserna som visas ovan. Låt oss se hur dessa föremål kommer att se ut i en praktisk värld. Ett objekt av klassen rektangel kommer att ge en rektangel, en form som vi så vanligt observerade i vardagen.

Abstrakt klass

Ett föremål i klassen triangel kommer att ge en triangel, återigen en vanlig vardagsform.

Abstrakt klass

Men hur skulle ett föremål av Class Shape se ut i en praktisk värld ??

Abstrakt klass

Om du observerar fungerar Shape-klassen vårt mål att uppnå arv och polymorfism. Men det var inte byggt för att instansieras. Sådana klasser kan märkas Abstrakt. En abstrakt javaklass kan inte instansieras.

Syntax:

abstract class Shape{
	// code
}

Det är möjligt att du INTE märker Shape class som abstrakt och sedan instansierar den. Men ett sådant objekt kommer inte att ha någon användning i din kod och kommer att öppna ett rum för potentiella fel. Detta är därför inte önskvärt.

Vad är abstrakta metoder i Java?

ABSTRAKT METOD in Java, är en metod som bara har metoddefinitionen men som inte innehåller implementering. En metod utan kropp är känd som en abstrakt metod. Det måste deklareras i en abstrakt klass. Den abstrakta metoden kommer aldrig att vara slutgiltig eftersom den abstrakta klassen måste implementera alla abstrakta metoder.

Som vi alla vet är formeln för att beräkna arean för rektangel, cirkel och triangel annorlunda. Metoden calculateArea() måste åsidosättas av de ärvda klasserna. Det är ingen mening att definiera det i Shape-klassen, men vi måste se till att alla ärvda klasser har metoden.

Sådana metoder kan märkas abstrakt.

Syntax:

abstract public void calculateArea();

För en abstrakt metod, ingen implementering krävs. Endast metodens signatur definieras.

Exempel på abstraktionskod

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();
}  
}

Fördelar med abstraktion

  • Den största fördelen med att använda en abstraktion i Programmering är att det låter dig gruppera flera relaterade klasser som syskon.
  • Abstraktion i objektorienterad programmering hjälper till att minska komplexiteten i design- och implementeringsprocessen av programvara.

Sista nyckelordet i Java

Den sista modifieraren gäller klasser, metoder och variabler. Betydelsen av final varierar från sammanhang till sammanhang, men den väsentliga idén är densamma.

  • En sista klass kan inte ärvas
  • En slutlig variabel blir en konstant och dess värde kan inte ändras.
  • En slutlig metod kan inte åsidosättas. Detta görs av säkerhetsskäl, och dessa metoder används för optimering.

Exempelvis :- Att lära sig abstrakta och slutliga nyckelord

Steg 1) Kopiera följande kod till en Editor.

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(){}
}

Steg 2) Spara, kompilera och kör koden.

Steg 3) Fel =? Den abstrakta metoden är inte implementerad i klassen Rectangle. För att åtgärda problemet avkommentar rad #15.

Steg 4) Avkommentera rad # 13. Spara & kompilera koden.

Steg 5) Fel = ? variabel b är slutgiltig

När ska man använda abstrakta metoder och abstrakt klass?

Abstrakta metoder deklareras oftast där två eller flera underklasser också gör samma sak på olika sätt genom olika implementeringar. Den utökar också samma abstrakt klass och erbjuder olika implementeringar av de abstrakta metoderna.

Abstrakta klasser hjälper till att beskriva generiska typer av beteenden och objektorienterad programmeringsklasshierarki. Den beskriver också underklasser för att erbjuda implementeringsdetaljer för den abstrakta klassen.

Sammanfattning:

  • Abstraktion i programmering är processen att välja viktiga datamängder för en Ändamålet i din programvara och utelämna de obetydliga.
  • När du har modellerat ditt objekt med hjälp av Data Abstraction in Java, kan samma uppsättning data användas i olika applikationer.