Paola Magillo, Univestita' di Genova,
Corso di Programmazione II per SMID, a.a. 2004-2005.
Laboratorio 01:
CLASSI E OGGETTI IN JAVA
Vedere l'ultima parte della lezione 2 per le
Istruzioni su come usare Java.
Implementare in Java la classe "rettangolo"
usata come esempio nella lezione 2
(ved. dispense).
Seguire passo-passo le dispense arricchendo man mano questa classe:
-
Partire dalla prima versione della classe "rettangolo"
(sezione "Esempio: classe rettangolo in Java").
Provare a compilare ed eseguire.
Modificare il "main" creando e stampando altri rettangoli.
-
Modificare la classe "incapsulando" le variabili di stato del rettangolo
(ved. sezione "Incapsulazione").
-
Aggiungere alla classe altri costruttori
(ved. sezione "Costruttore").
Aggiungere anche un costruttore ad un solo parametro che
costruisca un quadrato (rettangolo con length = width).
-
Aggiungere alla classe la variabile minimumSize e ridefinire
setLength, setWidth per scartare rettangoli con lati troppo
corti (ved. sezione
"Attributi e metodi di istanza / di classe').
Gestire questo anche nei costruttori: se i parametri sono errati
viene costruito un rettangolo con width e length pari al minimo.
-
Scrivere un nuovo "main" che contenga la sequenza
di istruzioni esempio della sezione
"Gestione della memoria / oggetti e puntatori".
Inserire tra le varie linee di codice istruzioni che
stampino il risultato del test "==" tra i vari rettangoli.
Controllare che cosa viene stampato.
-
Aggiungere la funzione isEqual (ved. sezione
"Uguaglianza come uguale stato"), aggiungere
nel main tra tra le varie linee di codice istruzioni che
stampino il risultato del test isEqual tra i vari rettangoli.
Controllare che cosa viene stampato.
-
Aggiungere la funzione di copia e il costruttore di copia
per i rettangoli (sezione "Copia di oggetti").
-
Considerare la classe "coppia di rettangoli"
(sezione "Shallow e deep equality").
Aggiungere alla classe un costruttore
che prenda come argomenti due rettangoli.
Aggiungere una funzione di stampa per la coppia di rettangoli.
Scrivere un main che chiami queste operazioni,
compilare ed eseguire.
NOTA: se i due file Rectangle.java e RectanglePair.java stanno
nella directory corrente, il sistema "si aggorge" che il
secondo "usa" il primo:
compilare il secondo provoca compilazione del primo (se non
esiste gia' il .class) ed eseguire il secondo linka automaticamente
il primo.
-
Scrivere un main che testi anche le due funzioni
di shallow e deep equality per coppie di rettangoli.