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:

  1. 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.
  2. Modificare la classe "incapsulando" le variabili di stato del rettangolo (ved. sezione "Incapsulazione").
  3. Aggiungere alla classe altri costruttori (ved. sezione "Costruttore"). Aggiungere anche un costruttore ad un solo parametro che costruisca un quadrato (rettangolo con length = width).
  4. 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.
  5. 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.
  6. 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.
  7. Aggiungere la funzione di copia e il costruttore di copia per i rettangoli (sezione "Copia di oggetti").
  8. 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.
  9. Scrivere un main che testi anche le due funzioni di shallow e deep equality per coppie di rettangoli.