Sostieni AppuntiFacili con una piccola donazione su PayPal
Dona con PayPalLa programmazione orientata agli oggetti (Object-Oriented Programming, OOP) è un paradigma che organizza il software attorno a oggetti.
Un programma non viene più visto come una sequenza di istruzioni, ma come un insieme di entità che collaborano tra loro.
Un oggetto può rappresentare:
Analogia:
| Concetto | Esempio |
|---|---|
| Classe | Progetto di una casa |
| Oggetto | Casa costruita |
Un oggetto possiede:
L’OOP permette di:
Rispetto alla programmazione procedurale:
In Java una classe si definisce con la keyword class.
class Persona {
}
Questa classe è vuota ma può già creare oggetti.
Persona p1 = new Persona();
new crea un oggetto in memoria.
Gli attributi rappresentano le informazioni dell’oggetto.
class Persona {
String nome;
int eta;
}
Uso:
Persona p = new Persona();
p.nome = "Anna";
p.eta = 25;
I metodi descrivono cosa può fare un oggetto.
class Persona {
String nome;
int eta;
void saluta(){
System.out.println("Ciao, sono " + nome);
}
}
Uso:
Persona p = new Persona();
p.nome = "Marco";
p.saluta();
Il costruttore inizializza l’oggetto quando viene creato.
Ha:
class Persona {
String nome;
int eta;
Persona(String nome, int eta){
this.nome = nome;
this.eta = eta;
}
}
Creazione:
Persona p = new Persona("Anna", 25);
this rappresenta l’oggetto corrente. Serve per distinguere attributi e parametri.
L’incapsulamento protegge i dati interni dell’oggetto.
Gli attributi dovrebbero essere privati.
class ContoBancario {
private double saldo;
void deposita(double importo){
saldo += importo;
}
}
Accesso controllato tramite metodi.
class Studente {
private String nome;
public String getNome(){
return nome;
}
public void setNome(String nome){
this.nome = nome;
}
}
Ogni oggetto ha il proprio valore.
Condivisi tra tutti gli oggetti.
class Studente {
String nome;
static String scuola = "ITI Fermi";
}
Uso:
System.out.println(Studente.scuola);
Gli oggetti collaborano invocando metodi.
Studente s = new Studente();
Registro r = new Registro();
r.aggiungiStudente(s);
Gli oggetti si scambiano messaggi (chiamate di metodo).
Un oggetto usa un altro oggetto.
Un oggetto contiene altri oggetti.
Esempio:
class Auto {
Motore motore;
}
class Rettangolo {
private int base;
private int altezza;
Rettangolo(int base, int altezza){
this.base = base;
this.altezza = altezza;
}
int area(){
return base * altezza;
}
int perimetro(){
return 2*base + 2*altezza;
}
}
public class Main {
public static void main(String[] args){
Rettangolo r = new Rettangolo(5,7);
System.out.println(r.area());
System.out.println(r.perimetro());
}
}
Cos'è una classe in Java?
Cos'è un oggetto?
A cosa serve il costruttore?
Quale keyword crea un oggetto?
Cosa indica 'private'?
Quale keyword indica ereditarietà?
Cosa rappresenta 'this'?
Un attributo static è:
Creare una classe Persona con:
Creare una classe Rettangolo con:
Creare una classe ContoBancario con:
Creare una classe Studente con:
scuolaStampare la scuola da più oggetti.
Creare una classe Auto che contiene un oggetto Motore.
Simulare l’accensione dell’auto tramite chiamata di metodo.
Prenota una lezione