L’astrazione è uno dei concetti fondamentali della Programmazione Orientata agli Oggetti. L’astrazione definisce un modello per creare un componente di un’applicazione. L’implementazione dell’astrazione dipende dalle caratteristiche e dai processi specifici del linguaggio.
1. Che cos’è l’astrazione?
L’astrazione è il processo di nascondere i dettagli interni di un’applicazione dal mondo esterno. L’astrazione viene utilizzata per descrivere le cose in termini semplici. Serve a creare una separazione tra l’applicazione e i programmi client.
2. Astrazione nella vita reale
L’astrazione è presente in quasi tutte le macchine della vita reale.
- La tua auto è un ottimo esempio di astrazione. Puoi avviare un’auto girando la chiave o premendo il pulsante di avvio. Non è necessario sapere come viene avviato il motore, quali componenti ha la tua auto. L’implementazione interna dell’auto e la logica complessa sono completamente nascoste all’utente.
- Possiamo scaldare il cibo nel forno a microonde. Premiamo alcuni pulsanti per impostare il timer e il tipo di cibo. Alla fine otteniamo un pasto caldo e delizioso. I dettagli interni del forno a microonde ci sono nascosti. Ci è stata data l’accesso alla funzionalità in modo molto semplice.
3. Astrazione in OOPS
Gli oggetti sono i mattoni fondamentali della programmazione orientata agli oggetti. Un oggetto contiene alcune proprietà e metodi. Possiamo nasconderli dal mondo esterno tramite modificatori di accesso. Possiamo fornire accesso solo alle funzioni e alle proprietà necessarie ad altri programmi. Questa è la procedura generale per implementare l’astrazione in OOPS.
4. Quali sono i diversi tipi di astrazione?
Ci sono due tipi di astrazione.
- Astrazione dei dati
- Astrazione dei processi
4.1) Astrazione dei dati
Quando i dati dell’oggetto non sono visibili al mondo esterno, si crea un’astrazione dei dati. Se necessario, l’accesso ai dati dell’oggetto viene fornito tramite alcuni metodi.

4.2) Astrazione dei processi
Non è necessario fornire dettagli su tutte le funzioni di un oggetto. Quando nascondiamo l’implementazione interna delle diverse funzioni coinvolte in un’operazione dell’utente, si crea un’astrazione di processo.

5. Astrazione in Java
L’astrazione in Java viene implementata attraverso interfacce e classi astratte. Sono utilizzate per creare un’implementazione base o un contratto per le classi di implementazione effettive. Car.java: Interfaccia di base o classe astratta
package com.journaldev.oops.abstraction;
public interface Car {
void turnOnCar();
void turnOffCar();
String getCarType();
}
ManualCar.java, AutomaticCar.java: classi di implementazione di 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;
}
}
Programma utente: Vediamo un programma di test in cui verranno utilizzate le funzioni di Car.
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());
}
}
Il programma client conosce solo Car e le funzioni che Car fornisce. I dettagli dell’implementazione interna sono nascosti al programma client. Riferimenti: Wikipedia, Documenti Oracle
Source:
https://www.digitalocean.com/community/tutorials/what-is-abstraction-in-oops