Scarica Oggetti e Classi in Java: Introduzione alla Programmazione Orientata agli Oggetti e più Dispense in PDF di Programmazione Java solo su Docsity!
Metodologie di Programmazione: Oggetti e Classi
Classi e oggetti
- Possono:
- Modellare gli oggetti del mondo reale
- Rappresentare oggetti grafici
- Rappresentare entità software (file, immagini, eventi, ecc.)
- Rappresentare concetti astratti (regole di un gioco, posizione di un giocatore)
- Rappresentare stati di un processo, di esecuzione, ecc. Metodologie di Programmazione 26/02/ 2
Classe vs. Oggetto
- Classe: automobile
- Attributi:
- String modello;
- Color colore;
- int numPasseggeri;
- double benzina;
- Metodi:
- Aggiungi/togli passeggero
- Riempi serbatoio
- Segnala quantità benzina
- Oggetto: una certa automobile
- Attributi:
- String modello = “X”;
- Color colore = Color.BLACK;
- int numPasseggeri = 1;
- double benzina = 50;
- Metodi:
- Come la classe Metodologie di Programmazione 26/02/ 4
Classe vs. Oggetto
- Classe:
- Definita mediante parte del codice sorgente del programma
- Scritta dal programmatore - Oggetto: - Un’entità all’interno di un programma in esecuzione - Creato quando un programma “gira” (dal metodo main o da un altro metodo) Metodologie di Programmazione 26/02/ 5
- Metodologie di Programmazione 26/02/ - Oggetto - Oggetto - Oggetto - Oggetto
- Oggetto 1 Oggetto - Oggetto
CRC (Classe, Responsabilità e Collaboratori) Card
- Una CRC Card è una descrizione preliminare di una classe nella fase iniziale di progettazione del programma Metodologie di Programmazione 26/02/ 8 Automobile Si trova su una certa strada Passeggero Può essere accesa o spenta Strada Si muove Chiave Gestisce un serbatoio Benzina Può contenere passeggeri Classe Collaboratori Responsabilità
Librerie
- I programmi Java normalmente non sono scritti da zero
- Esistono migliaia di classi di libreria per ogni esigenza (sia standard scritte da Sun, sia sul Web scritte da centinaia di sviluppatori) Metodologie di Programmazione 26/02/ 10
Librerie
- I programmi Java normalmente non sono scritti da zero
- Esistono migliaia di classi di libreria per ogni esigenza (sia standard scritte da Sun, sia sul Web scritte da centinaia di sviluppatori)
- Le classi sono organizzate in package
- Alcuni esempi:
- java.util – classi di utilità
- java.awt – classi per la grafica e le finestre
- javax.swing – sviluppo di interfacce GUI
- Un package “ speciale ” è java.lang: contiene le classi fondamentali per la programmazione in Java (es. String, System, ecc.) Metodologie di Programmazione 26/02/ 11
Come strutturare il codice di una classe in Java? classe Metodologie di Programmazione 26/02/ 13 campi metodi metodo 1 istruzione 1 istruzione 2 … istruzione n stato dell’oggetto operazioni|messaggi|comportamenti dell’oggetto Le istruzioni vanno SOLO nei metodi!!!
Counter.java Metodologie di Programmazione 26/02/ 14 Dichiarazione di un campo Tipicamente i campi sono privati Costruttore degli oggetti della classe Inizializza il campo value Costruttore^ I^ metodi^ della classe sono^ pubblici Metodi Campi Commento Javadoc Incrementa il valore di value Restituisce il valore di value
Dichiarare un campo
- La dichiarazione di un campo avviene come segue: Metodologie di Programmazione 26/02/ 16 Tipicamente ad accesso privato Se specificato indica che il campo è condiviso da tutti gli oggetti della classe Se specificato indica che il campo è una costante Es. int, double, String, ecc.
Alcuni esempi di campi Metodologie di Programmazione 26/02/ 17
Definizione di un metodo
- La definizione di un metodo avviene come segue:
- Esempi: Metodologie di Programmazione 26/02/ 19 Tipicamente ad accesso pubblico Tipo del valore restituito (void se non viene restituito nulla) Nome del metodo Lista (eventualmente vuota) dei nomi di parametri con relativo tipo Corpo del metodo (racchiuso da parentesi graffe) …………………..
Metodi e valori restituiti
- Un metodo può restituire un valore al chiamante
- La parola chiave void nell’intestazione (“signature” o “header”) del metodo indica che il metodo non restituisce alcun valore: Metodologie di Programmazione 26/02/ 20 …………………..