Abstractie erin Java

Wat is abstractie in Java?

Abstractie is het concept van objectgeoriënteerd programmeren dat alleen essentiële kenmerken "toont" en onnodige informatie "verbergt". Het hoofddoel van abstractie is het verbergen van onnodige details voor de gebruikers. Abstractie is het selecteren van gegevens uit een grotere pool om alleen relevante details van het object aan de gebruiker te tonen. Het helpt bij het verminderen van de complexiteit en inspanningen van het programmeren. Het is een van de belangrijkste concepten van OOP's.

Klik hier als de video niet toegankelijk is

Laten we abstractie in OOP's bestuderen met een voorbeeld:

Stel dat u een bankapplicatie wilt maken en u wordt gevraagd om alle informatie over uw klant te verzamelen. De kans is groot dat u de volgende informatie over de klant krijgt

Abstractie erin Java
Abstractie erin Java

Maar niet alle bovenstaande informatie is vereist om een ​​bankapplicatie te maken. U hoeft dus alleen de nuttige informatie voor uw bank applicatie uit dat zwembad. Gegevens zoals naam, adres, belastinginformatie, enz. zijn zinvol voor een bankapplicatie die een abstractievoorbeeld is in OOP's

Abstractie erin Java

Omdat we de klantinformatie uit een grotere groep hebben opgehaald/verwijderd/geselecteerd, wordt het proces in de versie Abstractie genoemd. OOP's. Echter, dezelfde informatie kan, eenmaal geëxtraheerd, worden gebruikt voor een breed scala aan toepassingen. U kunt bijvoorbeeld dezelfde gegevens gebruiken voor een ziekenhuisaanvraag, een sollicitatieportaal, een overheidsdatabase, etc. met weinig of geen aanpassing. Daarom worden het uw Master Data. Dit is een voordeel van Abstraction in OOPs.

Verschil tussen abstractie en inkapseling

Abstractie Inkapseling
Abstractie in objectgeoriënteerd programmeren lost de problemen op ontwerpniveau op. Inkapseling lost het implementatieniveau op.
Abstractie in programmeren draait om het verbergen van ongewenste details, terwijl de meest essentiële informatie wordt getoond. Inkapseling betekent dat de code en gegevens in één eenheid worden samengevoegd.
Gegevensabstractie in Java maakt het mogelijk om te focussen op wat het informatieobject moet bevatten Inkapseling betekent het verbergen van de interne details of mechanismen van hoe een object iets doet om veiligheidsredenen.

Verschil tussen abstracte klasse en interface

Abstracte klasse Interface
Een abstracte klasse kan zowel abstracte als niet-abstracte methoden hebben. De interface kan alleen abstracte methoden bevatten.
Het ondersteunt geen meerdere erfenissen. Het ondersteunt meerdere erfenissen.
Het kan de implementatie van de interface verzorgen. Het kan niet de implementatie van de abstracte klasse bieden.
Een abstracte klasse kan beschermde en abstracte publieke methoden hebben. Een interface kan alleen openbare abstracte methoden hebben.
Een abstracte klasse kan een definitieve, statische of statische eindvariabele hebben met elke toegangsspecificatie. De interface kan alleen een openbare statische eindvariabele hebben.

Wat is abstracte klasse?

ABSTRACTE KLASSE is een soort klasse in Java, die een of meer abstracte methoden declareren. Deze klassen kunnen zowel abstracte methoden als concrete methoden bevatten. Een normale klasse kan geen abstracte methoden hebben. Een abstracte klasse is een klasse die ten minste één abstracte methode bevat. We kunnen het concept begrijpen door de vormvoorbeeld in Java.

Beschouw de volgende klassenhiërarchie bestaande uit een Shape-klasse die wordt geërfd door drie klassen Rectangle, Circle en Triangle. De Shape-klasse is gemaakt om te besparen op gemeenschappelijke kenmerken en methoden die worden gedeeld door de drie klassen Rectangle, Circle en Triangle. calculateArea() is een dergelijke methode die wordt gedeeld door alle drie de onderliggende klassen en aanwezig is in de Shape-klasse.

Abstracte klasse in Java

Voorbeeld van vormabstractie

Stel nu dat je code schrijft om objecten te maken voor de hierboven afgebeelde klassen. Laten we eens kijken hoe deze objecten zullen er in een praktische wereld uitzien. Een object van de klasse rechthoek geeft een rechthoek, een vorm die we zo vaak waarnemen in het dagelijks leven.

Abstracte klasse

Een object uit de klasse driehoek geeft een driehoek, opnieuw een veel voorkomende alledaagse vorm.

Abstracte klasse

Maar hoe zou een object van Class Shape er in een praktische wereld uitzien ??

Abstracte klasse

Als je ziet dat de Shape-klasse in dienst is ons doel te bereiken erfenis en polymorfisme. Maar het is niet gebouwd om te worden geïnstantieerd. Dergelijke klassen kunnen worden gelabeld Abstract. Een abstracte Java-klasse kan niet worden geïnstantieerd.

Syntax:

abstract class Shape{
	// code
}

Het is mogelijk dat u de Shape-klasse NIET als Abstract labelt en deze vervolgens instantieert. Maar een dergelijk object heeft geen nut in uw code en opent ruimte voor mogelijke fouten. Daarom is dit niet wenselijk.

Wat zijn abstracte methoden in Java?

ABSTRACTE METHODE in Java, is een methode die alleen de methodedefinitie heeft, maar geen implementatie bevat. Een methode zonder lichaam staat bekend als een abstracte methode. Het moet in een abstracte klasse worden gedeclareerd. De abstracte methode zal nooit definitief zijn, omdat de abstracte klasse alle abstracte methoden moet implementeren.

Zoals we allemaal weten, is de formule voor het berekenen van de oppervlakte van rechthoek, cirkel en driehoek anders. De methode 'calculArea()' moet worden overschreven door de overnemende klassen. Het heeft geen zin om het in de Shape-klasse te definiëren, maar we moeten ervoor zorgen dat alle overervende klassen de methode hebben.

Dergelijke methoden kunnen worden gelabeld abstract

Syntax:

abstract public void calculateArea();

Voor een abstracte methode, er is geen implementatie vereist. Alleen de handtekening van de methode is gedefinieerd.

Voorbeeld van abstractiecode

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

Voordelen van abstractie

  • Het belangrijkste voordeel van het gebruik van een abstractie in Programming is dat je hiermee verschillende verwante klassen als broers en zussen kunt groeperen.
  • Abstractie in objectgeoriënteerd programmeren helpt de complexiteit van het ontwerp- en implementatieproces van software te verminderen.

Laatste zoekwoord in Java

De laatste modifier is van toepassing op klassen, methoden en variabelen. De betekenis van finale varieert van context tot context, maar het essentiële idee is hetzelfde.

  • Een laatste klasse kan niet worden geërfd
  • Een laatste variabele wordt een constante en de waarde ervan kan niet worden gewijzigd.
  • Een laatste methode kan niet worden overschreven. Dit wordt gedaan om veiligheidsredenen en deze methoden worden gebruikt voor optimalisatie.

Voorbeeld : - Om abstracte en laatste trefwoorden te leren

Stap 1) Kopieer de volgende code in een 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(){}
}

Stap 2) Bewaar, compileer en voer de code uit.

Stap 3) Fout =? De abstracte methode is niet geïmplementeerd in de klasse Rectangle. Om het probleem op te lossen, verwijder commentaarregel #15.

Stap 4) Verwijder commentaarregel # 13. Bewaar en compileer de code.

Stap 5) Fout = ? variabele b is definitief

Wanneer gebruik je abstracte methoden en abstracte klassen?

Abstracte methoden worden meestal gedeclareerd waarbij twee of meer subklassen hetzelfde op verschillende manieren doen via verschillende implementaties. Het breidt ook dezelfde Abstract-klasse uit en biedt verschillende implementaties van de abstracte methoden.

Abstracte klassen helpen om generieke typen gedragingen en objectgeoriënteerde programmeerklassenhiërarchie te beschrijven. Het beschrijft ook subklassen om implementatiedetails van de abstracte klasse te bieden.

Overzicht:

  • Abstractie bij programmeren is het proces waarbij belangrijke datasets worden geselecteerd voor een Object in uw software en laat de onbelangrijke weg.
  • Nadat u uw object hebt gemodelleerd met behulp van Data Abstraction in Java, kan dezelfde set gegevens in verschillende toepassingen worden gebruikt.