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

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
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.
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.
Et objekt av klassetrekanten vil gi en trekant, igjen en vanlig hverdagsform.
Men hvordan ville et objekt av Class Shape se ut i en praktisk verden ??
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.




