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

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
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.
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.
Ett fรถremรฅl i klassen triangel kommer att ge en triangel, รฅterigen en vanlig vardagsform.
Men hur skulle ett fรถremรฅl av Class Shape se ut i en praktisk vรคrld ??
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.




