Wat is Abstractie in OOPS?

Abstrahering is een van de kernconcepten van Objectgeoriënteerd Programmeren. Abstrahering definieert een model om een toepassingscomponent te creëren. De implementatie van abstrahering is afhankelijk van de taalspecifieke functies en processen.

1. Wat is Abstrahering?

Abstrahering is het proces van het verbergen van de interne details van een toepassing voor de buitenwereld. Abstrahering wordt gebruikt om dingen in eenvoudige bewoordingen te beschrijven. Het wordt gebruikt om een grens te creëren tussen de toepassing en de programma’s van de klant.

2. Abstrahering in het echte leven

Abstrahering is aanwezig in bijna alle machines in het echte leven.

  • Je auto is een geweldig voorbeeld van abstrahering. Je kunt een auto starten door de sleutel om te draaien of op de startknop te drukken. Je hoeft niet te weten hoe de motor start, welke componenten je auto heeft. De interne implementatie en complexe logica van de auto zijn volledig verborgen voor de gebruiker.
  • We kunnen ons eten verwarmen in de magnetron. We drukken op wat knoppen om de timer en het type voedsel in te stellen. Uiteindelijk krijgen we een warme en heerlijke maaltijd. De interne details van de magnetron zijn voor ons verborgen. We hebben toegang gekregen tot de functionaliteit op een zeer eenvoudige manier.

3. Abstractie in OOPS

Objecten zijn de bouwstenen van Objectgeoriënteerd Programmeren. Een object bevat enkele eigenschappen en methoden. We kunnen ze verbergen voor de buitenwereld via toegangsmodificatoren. We kunnen alleen toegang verlenen tot vereiste functies en eigenschappen voor andere programma’s. Dit is de algemene procedure om abstractie te implementeren in OOPS.

4. Wat zijn de verschillende soorten abstractie?

Er zijn twee soorten abstractie.

  1. Data Abstractie
  2. Proces Abstractie

4.1) Data Abstractie

Wanneer de objectgegevens niet zichtbaar zijn voor de buitenwereld, ontstaat er data abstractie. Indien nodig wordt toegang tot de gegevens van objecten verleend via bepaalde methoden.

Data Abstraction

4.2) Proces Abstractie

We hoeven geen details te verstrekken over alle functies van een object. Wanneer we de interne implementatie van de verschillende functies die betrokken zijn bij een gebruikersoperatie verbergen, ontstaat procesabstractie.

Process Abstraction

5. Abstractie in Java

Abstractie in Java wordt geïmplementeerd via interfaces en abstracte klassen. Ze worden gebruikt om een basisimplementatie of contract te creëren voor de feitelijke implementatieklassen. Car.java: Basisklasse of abstracte interface

package com.journaldev.oops.abstraction;

public interface Car {

	void turnOnCar();

	void turnOffCar();

	String getCarType();
}

ManualCar.java, AutomaticCar.java: Implementatieklassen van Car.

package com.journaldev.oops.abstraction;

public class ManualCar implements Car {

	private String carType = "Manual";
	
	@Override
	public void turnOnCar() {
		System.out.println("turn on the manual car");
	}

	@Override
	public void turnOffCar() {
		System.out.println("turn off the manual car");
	}

	@Override
	public String getCarType() {
		return this.carType;
	}
}
package com.journaldev.oops.abstraction;

public class AutomaticCar implements Car {

	private String carType = "Automatic";

	@Override
	public void turnOnCar() {
		System.out.println("turn on the automatic car");
	}

	@Override
	public void turnOffCar() {
		System.out.println("turn off the automatic car");
	}

	@Override
	public String getCarType() {
		return this.carType;
	}
}

Gebruikersprogramma: Laten we eens kijken naar een testprogramma waar de Car-functies zullen worden gebruikt.

package com.journaldev.oops.abstraction;

public class CarTest {

	public static void main(String[] args) {
		Car car1 = new ManualCar();
		Car car2 = new AutomaticCar();

		car1.turnOnCar();
		car1.turnOffCar();
		System.out.println(car1.getCarType());

		car2.turnOnCar();
		car2.turnOffCar();
		System.out.println(car2.getCarType());

	}

}

Het clientprogramma weet alleen van de Car en de functies die de Car biedt. De interne implementatiedetails worden verborgen gehouden voor het clientprogramma. Referenties: Wikipedia, Oracle Docs

Source:
https://www.digitalocean.com/community/tutorials/what-is-abstraction-in-oops