Java Abstraction - OOP beheersen met abstractie in Java



Dit artikel over Java Abstraction zal je helpen het gebruik van Abstract class en Interface te begrijpen en hoe je dit kunt bereiken met Abstraction.

In de vorige blog heb je geleerd over in Java. Nu zullen we in deze blog nog een belangrijke pijler van begrijpen d.w.z. Java-abstractie waarvan de belangrijkste functionaliteit is om de interne implementatiedetails te verbergen.

Ik zal de onderstaande onderwerpen in dit artikel behandelen:





U kunt ook deze opname van waar u de onderwerpen op een gedetailleerde manier kunt begrijpen met voorbeelden.



Abstractie in OOP

Wanneer we het in het algemeen over abstractie hebben, is de softwaretaal een voorbeeld van abstractie. Laten we een voorbeeld nemen en een verklaring schrijven als-

x = y + z

In de bovenstaande verklaring voegen we twee variabelen toe die op twee verschillende locaties zijn opgeslagen en slaan we het resultaat vervolgens op een nieuwe locatie op. Wat gebeurt er dan? Zoals u wellicht weet, zijn er registers, instructiesets, programmatellers, opslageenheden, enz. Bij betrokken. Wanneer we verwijzen naar abstractie in Java, hebben we het over abstractie in en hoe het wordt bereikt. Het concept van abstractie in OOP begint precies op het moment dat een klas wordt bedacht. Abstractie wordt overal in software en OOP toegepast.



fibonacci in c ++

Wat is Java-abstractie?

Abstractie is niets anders dan de kwaliteit van het omgaan met ideeën in plaats van gebeurtenissen. Het behandelt in feite het verbergen van de interne details en het tonen van de essentiële dingen aan de gebruiker.

Bellen - Java-abstractie -Edureka

Als je naar de bovenstaande gif kijkt, kun je zien wanneer je wordt gebeld, we krijgen een optie om het op te nemen of gewoon te weigeren. Maar in werkelijkheid wordt er veel code op de achtergrond uitgevoerd. Dus hier kent u de interne verwerking van hoe een oproep wordt gegenereerd niet, dat is het mooie van abstractie. U kunt op twee manieren abstractie bereiken:

a) Abstracte klasse

hoe je een dubbel converteert naar een int

b) Interface

Laten we deze concepten nader bekijken.

Abstracte klasse

Abstracte klasse bevat het trefwoord ‘abstract’. Maar wat betekent het precies? Als u de klasse abstract maakt, kan deze niet worden geïnstantieerd, d.w.z. u kunt geen object van een abstracte klasse maken. Ook kan een abstracte klasse zowel abstracte als concrete methoden bevatten.

Opmerking: U kunt 0-100% abstractie bereiken met behulp van een abstracte klasse.

Om een ​​abstracte klasse te gebruiken, moet u deze erven van de basisklasse. Hier moet je implementaties voor de abstracte methoden bieden, anders wordt het een abstracte klasse.

Laten we eens kijken naar de syntaxis van een abstracte klasse:

Abstracte klasse Sport {// abstracte klasse sport Abstracte leegte sprong () // abstracte methode}

Koppel

Een interface in Java is een verzameling abstracte methoden en statische constanten. Zoals je misschien weet in een interface, is elke methode openbaar en abstract, maar bevat deze geen constructor. Naast abstractie helpt de interface ook om meervoudige overerving in Java te bereiken.
Opmerking: Met interfaces bereik je 100% abstractie.

In feite is Interface een groep verwante methoden met lege lichamen. Laten we interfaces begrijpen door een voorbeeld te nemen van een Shape-interface met de bijbehorende methoden.

openbare interface vorm {public void draw () public double getArea ()}

Deze methoden moeten in elke ‘vorm’ aanwezig zijn, toch? Maar hun werk zal anders zijn.

Laten we aannemen dat u een vorm wilt tekenen, bijvoorbeeld cirkel, vierkant, rechthoek enz. U weet het al, elke vorm heeft zijn eigen afmetingen zoals straal, hoogte en breedte. Stel dat ik een cirkel wil tekenen en de oppervlakte wil berekenen. Gezien hetzelfde, heb ik twee methoden gemaakt in de bovenstaande code, namelijk draw () en getArea (). Met deze methoden kan ik nu elke vorm tekenen en het gebied berekenen door de interface ervan te implementeren.

Laten we nu eens kijken naar de functionaliteit om te zien hoe u deze interface kunt implementeren.
Om deze interface te implementeren, zou de naam van uw klas veranderen in een van de vormen, laten we zeggen 'Cirkel'. Dus om de klasseninterface te implementeren, zal ik gebruik maken van het trefwoord ‘implementeren’:

public class Circle implementeert Shape {private dubbele straal public Circle (double r) {this.radius = r} void draw () {System.out.println ('Drawing Circle')} public double getArea () {return Math.PI * this.radius * this.radius} public double getRadius () {return this.radius}} public class Test {public static void main (String args []) {Shape c = new Circle (8) c.draw () System. out.println ('Area =' + c.getArea ())}}

In het bovenstaande voorbeeld heb ik functionaliteiten gespecificeerd voor de verschillende methoden en het berekende gebied van een cirkel. Hier, bij het implementeren van een interface, stelt het een klas in staat formeler te worden over het gedrag dat het biedt. U kunt ook een andere klasse maken, bijvoorbeeld de klasse ‘Rechthoek’, die dezelfde ‘vorm’ kan erven met verschillende functionaliteiten.

javascript verkrijg lengte van array

Real-time voorbeeld van abstractie in java

Stel dat we Sport als interface hebben. Hier wordt de implementatie verzorgd door klassen genaamd 'Badminton' en 'Voetbal'. In een echt scenario is een eindgebruiker niet op de hoogte van de implementatieklasse. Daarom kan een object van de implementatieklasse worden geleverd door de fabrieksmethode. De fabrieksmethode kan worden gebruikt om een ​​object van een implementatieklasse te maken op basis van een bepaald criterium.
Laten we hetzelfde implementeren en een interface maken met de naam Sport.java.

openbare interface Sport {void play ()} // Nu gaan we een klasse creëren met de naam 'Badminton' openbare klasse Badminton-instrumenten Sport {@Override public void play () {System.out.println ('Badminton spelen')}} // Laten we vervolgens onze laatste klasse 'Voetbal' openbare klasse Voetbalimplementaties maken Sport {@Override public void play () {System.out.println ('Voetballen')}

De laatste stap is het maken van een hoofdklasse met de naam 'SportInterface'.

public SportInterface {public static void main (String args []) {// jouw code hier}}

Als u het bovenstaande programma uitvoert, is de uitvoer zoals hieronder weergegeven:

Badminton spelen ------------------- Voetballen

Ik hoop dat jullie duidelijk zijn over de interface en hoe je er abstractie mee kunt bereiken. Laten we dit artikel nu afsluiten door abstractie en inkapseling te vergelijken.

Abstractie versus inkapseling

Abstractie Inkapseling
Lost het probleem op op ontwerpniveauLost het probleem op op het implementatieniveau
Wordt gebruikt om ongewenste gegevens te verbergen en relevante resultaten te gevenInkapseling betekent het verbergen van de code en gegevens in een enkele eenheid om gegevens tegen de buitenwereld te beschermen
Buitenlay-out - gebruikt in termen van ontwerpBinnenlay-out - gebruikt in termen van implementatie

Ik hoop dat je het verschil tussen abstractie en inkapseling hebt begrepen. Hiermee eindigen we op Java Abstraction blog. Hoop, je vond het informatief en het hielp bij het toevoegen van waarde aan je kennis. Als u meer over Java wilt weten, kunt u het

Nu je 'Wat is Java-abstractie' hebt begrepen, kun je het door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De training- en certificeringcursus Java J2EE en SOA van Edureka is bedoeld voor studenten en professionals die Java Developer willen worden. De cursus is bedoeld om u een voorsprong te geven in het programmeren van Java en u te trainen in zowel kern- als geavanceerde Java-concepten, samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in het commentaargedeelte van deze 'Java Abstraction' blog en we nemen zo snel mogelijk contact met u op.