Abstraction i Java

Hvad er mavemusklertraction i Java?

Abstraction er konceptet med objektorienteret programmering, der kun "viser" essentielle attributter og "skjuler" unรธdvendig information. Hovedformรฅlet med abstraction skjuler unรธdvendige detaljer fra brugerne. Abstraction er at udvรฆlge data fra en stรธrre pulje for kun at vise relevante detaljer om objektet til brugeren. Det hjรฆlper med at reducere programmeringskompleksitet og -indsats. Det er et af de vigtigste koncepter inden for OOP'er.

Klik link. hvis videoen ikke er tilgรฆngelig

Lad os studere mavemusklertraction i OOP'er med eksempel:

Antag, at du vil oprette en bankapplikation, og du bliver bedt om at indsamle alle oplysninger om din kunde. Der er chancer for, at du kommer med fรธlgende oplysninger om kunden

Abstraction i Java
Abstraction i Java

Men ikke alle ovenstรฅende oplysninger er nรธdvendige for at oprette en bankapplikation. Sรฅ du skal kun vรฆlge de nyttige oplysninger til din bankansรธgning fra den pulje. Data som navn, adresse, skatteoplysninger osv. giver mening for en bankapplikation, der er en Abstraceksempel i OOP'er

Abstraction i Java

Da vi har hentet/fjernet/udvalgt kundeoplysningerne fra en stรธrre pulje, kaldes processen for Abs.traction i OOP'er. Imidlertid er de samme oplysninger, nรฅr de ertracted kan bruges til en bred vifte af applikationer. For eksempel kan du bruge de samme data til hospitalsansรธgninger, jobportalansรธgninger, en offentlig database osv. med fรฅ eller ingen รฆndringer. Derfor bliver det dine stamdata. Dette er en fordel ved Abstraction i OOP'er.

Forskellen mellem mavemusklertraction og indkapsling

Abstraction Indkapsling
AbstracI objektorienteret programmering lรธser man problemerne pรฅ designniveau. Indkapsling lรธser det implementeringsniveau.
AbstracI programmering handler det om at skjule uรธnskede detaljer, samtidig med at de vigtigste oplysninger vises. Indkapsling betyder at binde koden og data til en enkelt enhed.
Data Abstraction i Java giver mulighed for at fokusere pรฅ, hvad informationsobjektet skal indeholde Indkapsling betyder at skjule de interne detaljer eller mekanikken for, hvordan et objekt gรธr noget af sikkerhedsmรฆssige รฅrsager.

Forskellen mellem mavemusklertract-klasse og grรฆnseflade

Abstract-klasse grรฆnseflade
En mavemuskeltract-klassen kan have begge mavemusklertract og ikke-abtract-metoder. Interfacet kan kun have abstract-metoder.
Det understรธtter ikke flere arv. Det understรธtter flere arv.
Det kan give implementeringen af โ€‹โ€‹grรฆnsefladen. Det kan ikke give implementeringen af โ€‹โ€‹mavemusklernetract-klassen.
En mavemuskeltract-klassen kan have beskyttet og mavemusklertracoffentlige metoder. En grรฆnseflade kan kun have offentlige abstract-metoder.
En mavemuskeltract-klassen kan have en final, statisk eller statisk final variabel med en hvilken som helst adgangsspecifikation. Grรฆnsefladen kan kun have en offentlig statisk slutvariabel.

Hvad er mavemusklertract-klasse?

AkrylTRACT-KLASSE er en type klasse i Java, der erklรฆrer en eller flere abstract-metoder. Disse klasser kan have mavemusklertract-metoder sรฅvel som konkrete metoder. En normal klasse kan ikke have abstract-metoder. En mavemuskeltract-klassen er en klasse, der indeholder mindst รฉn abstract-metoden. Vi kan forstรฅ konceptet ved hjรฆlp af form eksempel i java.

Overvej fรธlgende klassehierarki bestรฅende af en Shape-klasse, som er nedarvet af tre klasser Rektangel, Cirkel og Trekant. Shape-klassen er oprettet for at spare pรฅ almindelige attributter og metoder, der deles af de tre klasser Rektangel, Cirkel og Trekant. calculateArea() er en sรฅdan metode, der deles af alle tre underordnede klasser og findes i Shape-klassen.

Abstract Klasse i Java

Form mavemusklertraction eksempel

Antag nu, at du skriver kode for at oprette objekter til klasserne afbildet ovenfor. Lad os se, hvordan disse genstande vil se ud i en praktisk verden. Et objekt i klassens rektangel vil give et rektangel, en form vi sรฅ almindeligt observerede i hverdagen.

Abstract-klasse

Et objekt af klassetrekanten vil give en trekant, igen en almindelig hverdagsform.

Abstract-klasse

Men hvordan ville et objekt af Class Shape se ud i en praktisk verden ??

Abstract-klasse

Hvis du observerer, tjener Shape-klassen vores mรฅl om at nรฅ arv og polymorfi. Men det var ikke bygget til at blive instansieret. Sรฅdanne klasser kan mรฆrkes AbstractEn mavemuskeltract Java-klassen kan ikke instantieres.

Syntaks:

abstract class Shape{
	// code
}

Det er muligt, at du IKKE mรฆrker Formklassen som Mavemusklertract og derefter instantiere det. Men et sรฅdant objekt vil ikke have nogen brugbarhed i din kode og vil รฅbne op for potentielle fejl. Derfor er dette ikke รธnskeligt.

Hvad er mavemusklertract Metoder i Java?

AkrylTRACT-METODE in Java, er en metode, der kun har metodedefinitionen, men ikke indeholder implementering. En metode uden en krop kaldes en Abstract-metode. Det skal deklareres i en abstract-klassen. MavemusklernetracMetoden vil aldrig vรฆre endelig, fordi mavemusklernetract-klassen skal implementere alle mavemusklernetract-metoder.

Som vi alle ved, er formlen til at beregne areal for rektangel, cirkel og trekant anderledes. calculateArea()-metoden skal tilsidesรฆttes af de nedarvede klasser. Det giver ingen mening at definere det i Shape-klassen, men vi er nรธdt til at sikre os, at alle de nedarvede klasser har metoden.

Sรฅdanne metoder kan mรฆrkes abstract.

Syntaks:

abstract public void calculateArea();

Til en abstract-metoden, ingen implementering er nรธdvendig. Kun metodens signatur er defineret.

Abstraction Code Eksempel

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

Fordele ved mavemusklertraction

  • Den stรธrste fordel ved at bruge en mavemuskeltraction i Programmering er, at det giver dig mulighed for at gruppere flere relaterede klasser som sรธskende.
  • AbstracObjektorienteret programmering hjรฆlper med at reducere kompleksiteten i design- og implementeringsprocessen for software.

Sidste sรธgeord i Java

Den endelige modifikator gรฆlder for klasser, metoder og variabler. Betydningen af โ€‹โ€‹endelig varierer fra kontekst til kontekst, men den vรฆsentlige idรฉ er den samme.

  • En sidste klasse kan ikke arves
  • En endelig variabel bliver en konstant, og dens vรฆrdi kan ikke รฆndres.
  • En endelig metode kan ikke tilsidesรฆttes. Dette gรธres af sikkerhedsmรฆssige รฅrsager, og disse metoder bruges til optimering.

Eksempel :- At lรฆre mavemusklertract & endelige sรธgeord

Trin 1) Kopier fรธlgende kode ind i 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(){}
}

Trin 2) Gem, kompilรฉr og kรธr koden.

Trin 3) Fejl =? Mavemusklernetract-metoden er ikke implementeret i klassen Rectangle. For at lรธse problemet, fjern kommentaren fra linje #15.

Trin 4) Fjern kommentar linje # 13. Gem og kompilรฉr koden.

Trin 5) Fejl = ? variabel b er endelig

Hvornรฅr skal man bruge mavemusklertract Metoder og mavemusklertract-klasse?

Abstract-metoder deklareres oftest, hvor to eller flere underklasser ogsรฅ gรธr det samme pรฅ forskellige mรฅder gennem forskellige implementeringer. Det udvider ogsรฅ den samme Abstract-klassen og tilbyder forskellige implementeringer af mavemusklernetract-metoder.

Abstract-klasser hjรฆlper med at beskrive generiske typer af adfรฆrd og objektorienteret programmerings klassehierarki. De beskriver ogsรฅ underklasser for at give implementeringsdetaljer om ABStract-klassen.

Sammendrag:

  • AbstracProgrammering er processen med at udvรฆlge vigtige datasรฆt til en Object i din software og udelade de ubetydelige.
  • Nรฅr du har modelleret dit objekt ved hjรฆlp af Data Abstraction i Java, kunne det samme sรฆt data bruges i forskellige applikationer.

Opsummer dette indlรฆg med: