Abstraksjon i Java

Hva er abstraksjon i Java?

Abstraksjon er konseptet med objektorientert programmering som "viser" kun essensielle attributter og "gjemmer" unødvendig informasjon. Hovedformålet med abstraksjon er å skjule unødvendige detaljer for brukerne. Abstraksjon er å velge data fra en større pool for å vise bare relevante detaljer om objektet til brukeren. Det hjelper med å redusere programmeringskompleksitet og innsats. Det er et av de viktigste konseptene til OOPs.

Klikk her. hvis videoen ikke er tilgjengelig

La oss studere abstraksjon i OOPs med eksempel:

Anta at du vil opprette en bankapplikasjon og du blir bedt om å samle inn all informasjon om kunden din. Det er sjanser for at du kommer med følgende informasjon om kunden

Abstraksjon i Java
Abstraksjon i Java

Men ikke all informasjonen ovenfor er nødvendig for å opprette en bankapplikasjon. Så du må bare velge nyttig informasjon for din bankapplikasjon fra det bassenget. Data som navn, adresse, skatteinformasjon osv. gir mening for en bankapplikasjon som er et abstraksjonseksempel i OOPs

Abstraksjon i Java

Siden vi har hentet/fjernet/valgt kundeinformasjonen fra en større pool, omtales prosessen som Abstraksjon i OOP. Imidlertid kan den samme informasjonen når den er hentet ut, brukes til et bredt spekter av applikasjoner. Du kan for eksempel bruke de samme dataene for sykehussøknad, jobbportalsøknad, en statlig database osv. med liten eller ingen modifikasjon. Derfor blir det masterdataene dine. Dette er en fordel med Abstraksjon i OOPs.

Forskjellen mellom abstraksjon og innkapsling

Abstraksjon innkapsling
Abstraksjon i objektorientert programmering løser problemene på designnivå. Innkapsling løser det implementeringsnivået.
Abstraksjon i programmering handler om å skjule uønskede detaljer samtidig som den mest essensielle informasjonen vises. Innkapsling betyr å binde koden og dataene til en enkelt enhet.
Dataabstraksjon i Java gjør det mulig å fokusere på hva informasjonsobjektet må inneholde innkapsling betyr å skjule de interne detaljene eller mekanikken til hvordan et objekt gjør noe av sikkerhetsgrunner.

Forskjellen mellom abstrakt klasse og grensesnitt

Abstrakt klasse Interface
En abstrakt klasse kan ha både abstrakte og ikke-abstrakte metoder. Grensesnittet kan bare ha abstrakte metoder.
Den støtter ikke flere arv. Den støtter flere arv.
Det kan gi implementeringen av grensesnittet. Det kan ikke gi implementeringen av den abstrakte klassen.
En abstrakt klasse kan ha beskyttede og abstrakte offentlige metoder. Et grensesnitt kan bare ha offentlige abstrakte metoder.
En abstrakt klasse kan ha endelig, statisk eller statisk sluttvariabel med en hvilken som helst tilgangsspesifisator. Grensesnittet kan bare ha en offentlig statisk sluttvariabel.

Hva er abstrakt klasse?

ABSTRAKT KLASSE er en type klasse i Java, som erklærer en eller flere abstrakte metoder. Disse klassene kan ha abstrakte metoder så vel som konkrete metoder. En normal klasse kan ikke ha abstrakte metoder. En abstrakt klasse er en klasse som inneholder minst én abstrakt metode. Vi kan forstå konseptet av form eksempel i java.

Tenk på følgende klassehierarki som består av en Shape-klasse som er arvet av tre klasser rektangel, sirkel og trekant. Shape-klassen er opprettet for å spare på vanlige attributter og metoder som deles av de tre klassene rektangel, sirkel og trekant. calculateArea() er en slik metode som deles av alle tre barneklassene og finnes i Shape-klassen.

Abstrakt klasse i Java

Eksempel på formabstraksjon

Anta nå at du skriver kode for å lage objekter for klassene som er avbildet ovenfor. La oss se hvordan disse objekter vil se ut i en praktisk verden. Et objekt av klasserektangelet vil gi et rektangel, en form vi så ofte observerte i hverdagen.

Abstrakt klasse

Et objekt av klassetrekanten vil gi en trekant, igjen en vanlig hverdagsform.

Abstrakt klasse

Men hvordan ville et objekt av Class Shape se ut i en praktisk verden ??

Abstrakt klasse

Hvis du observerer Shape-klassen tjener i målet vårt om å nå arv og polymorfisme. Men den ble ikke bygget for å bli instansiert. Slike klasser kan merkes Abstrakt. En abstrakt java-klasse kan ikke instansieres.

Syntaks:

abstract class Shape{
	// code
}

Det er mulig du IKKE merker Shape class som Abstrakt og deretter instansierer den. Men et slikt objekt vil ikke ha noen bruk i koden din og vil åpne et rom for potensielle feil. Dette er derfor ikke ønskelig.

Hva er abstrakte metoder i Java?

ABSTRAKT METODE in Java, er en metode som bare har metodedefinisjonen, men som ikke inneholder implementering. En metode uten kropp er kjent som en abstrakt metode. Det må deklareres i en abstrakt klasse. Den abstrakte metoden vil aldri være endelig fordi den abstrakte klassen må implementere alle de abstrakte metodene.

Som vi alle vet, er formelen for å beregne areal for rektangel, sirkel og trekant annerledes. calculateArea()-metoden må overstyres av de arvende klassene. Det gir ingen mening å definere det i Shape-klassen, men vi må sørge for at alle arveklassene har metoden.

Slike metoder kan merkes abstrakt.

Syntaks:

abstract public void calculateArea();

For en abstrakt metode, ingen implementering er nødvendig. Bare signaturen til metoden er definert.

Eksempel på abstraksjonskode

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

Fordeler med abstraksjon

  • Den største fordelen med å bruke en abstraksjon i Programmering er at det lar deg gruppere flere relaterte klasser som søsken.
  • Abstraksjon i objektorientert programmering bidrar til å redusere kompleksiteten i design- og implementeringsprosessen til programvare.

Siste søkeord i Java

Den siste modifikatoren gjelder klasser, metoder og variabler. Betydningen av endelig varierer fra kontekst til kontekst, men den essensielle ideen er den samme.

  • En siste klasse kan ikke arves
  • En endelig variabel blir en konstant og verdien kan ikke endres.
  • En endelig metode kan ikke overstyres. Dette gjøres av sikkerhetsmessige årsaker, og disse metodene brukes for optimalisering.

Eksempel :- For å lære abstrakte og endelige nøkkelord

Trinn 1) Kopier følgende kode inn 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(){}
}

Trinn 2) Lagre, kompiler og kjør koden.

Trinn 3) Feil =? Den abstrakte metoden er ikke implementert i klassen Rectangle. For å fikse problemet, fjern kommentar linje #15.

Trinn 4) Fjern kommentar linje # 13. Lagre og kompiler koden.

Trinn 5) Feil = ? variabel b er endelig

Når skal man bruke abstrakte metoder og abstrakt klasse?

Abstrakte metoder er for det meste deklarert der to eller flere underklasser også gjør det samme på forskjellige måter gjennom forskjellige implementeringer. Den utvider også den samme abstrakte klassen og tilbyr forskjellige implementeringer av de abstrakte metodene.

Abstrakte klasser hjelper til med å beskrive generiske typer atferd og objektorientert programmeringsklassehierarki. Den beskriver også underklasser for å tilby implementeringsdetaljer for den abstrakte klassen.

Sammendrag:

  • Abstraksjon i programmering er prosessen med å velge viktige datasett for en Objekt i programvaren og utelate de ubetydelige.
  • Når du har modellert objektet ditt ved å bruke Data Abstraksjon i Java, kan det samme settet med data brukes i forskjellige applikasjoner.