DIPARTIMENTO   DI   INFORMATICA
Università di Torino

Programmazione in Java - CEDACRI

a.a. 00/01

Lezione 4

Argomenti trattati

Uso di "Class Diagrams" per descrivere l'architettura dei programmi. Un primo (semplice) esempio di architettura: View-Controller. Input/Output interattivo.

Che cosa sono i costruttori di classe. Frames e output grafico. Relazioni tra classi: USARE, AVERE, ESSERE.

Ereditarieta' e subtyping.

Introduzione agli applet. Uso di appletviewer.

Programmi utilizzati

  • dal Cap. 4
    1. Input/Output interattivo
      1. Uso di Dialog Box per l'input:
        CelsiusToFahrenheit2.java
      2. Uso di Dialog Box per l'output:
        CelsiusToFahrenheit3.java
        ESERCIZIO:realizzare un'applicazione ConfrontaTemperature che riceve in input da due dialog box una temperatura in Celsius e una temperatura in Fahrenheit, le confronta, e restituisce in output su dialog box il risultato del confronto.
    2. Output grafico
      1. Introduzione ai Frames
        1. Creazione di un frame invisibile:
          FrameTest1.java
        2. Creazione di un frame vuoto:
          FrameTest2.java
      2. Personalizzazione di un frame con l'ereditarieta' (ATTENZIONE: gli esempi ilustrati in questo punto hanno il pregio di essere molto semplici, essi usano il metodo paint per disegnare direttamente su un frame. Questo stile di programmazione e' SCONSIGLIATO.)
        1. Uno schema da riempire:
          SchemaMyOwnFrame.txt
        2. Un frame personalizzato MyOwnFrame.java e una classe che lo usa: MyExample.java DOMANDA: potremmo dire che la classe MyExample USA la classe MyOwnFrame, mentre la classe MyOwnFrame E' (o ESTENDE o EREDITA DA) JFrame. Quale tra queste due relazioni (ESSERE e ESTENDERE) e' la piu' generale?
        3. Un frame (una finestra grafica) MyFrameWriter.java e una classe che lo usa: FrameTest3.java
      3. Personalizzazione di un frame con l'ereditarieta' e uso dei Panel (ATTENZIONE: gli esempi ilustrati in questo punto NON SONO PRESENTI NEL LIBRO. Sono una rielaborazione degli esempi del punto precedente. Sono piu' complessi, non disegnano direttamente su di un frame, ma su pannelli che sono aggiunti ai frame. Questo e' lo stile di programmazione CONSIGLIATO. Per ulteriori dettagli consultare il Capitolo 7 del libro "Java 2 i fondamenti".)
        1. Due schemi da riempire:
          SchemaMioFrame.txt e SchemaMioPanel.txt
        2. Un pannello personalizzato MioPanel.java, un frame personalizzato MioFrame.java che usa il pannello, e una classe che usa il frame: MioExample.java
          ESERCIZIO:Modificare gli altri esempi del punto precedente usando il nuovo stile.
    3. Metodi per disegnare (ATTENZIONE: gli esempi ilustrati in questo punto usano lo stile di programmazione SCONSIGLIATO.)
      1. Finestre grafiche per mostrare l'Output
        1. Una finesta che mostra un orologio ClockWriter.java e l'applicazione che la usa: ShowClock.java
      2. Oggetti con uno stato: variabili di istanza
        1. Una finestra/applicazione che dice quante volte e' stata ridisegnata: FieldExample.java
        2. Una finesta che mostra un orologio ClockWriter2.java, l'applicazione che la usa e' ottenuta modificando ShowClock.java in modo da farle usare ClockWriter2.java invece di ClockWriter.java.
          DOMANDA:potremmo dire che la classe ClockWriter USA la classe GregorianCalendar, mentre la classe ClocKWriter2 HA UN GregorianCalendar. Quale tra queste due relazioni (USARE e AVERE) e' la piu' generale? In precedenza abbiamo anche incontrato la relazione ESSERE. Quale tra le relazioni ESSERE e AVERE e' la piu' generale?
          ESERCIZIO:Fare gli esecizi 1, 2, 3 prima della sezione 4.4.1 del libro. Per fare l'esercizio 3 usare lo stile di programmazione CONSIGLIATO.
        3. Una piccola applicazione che riassume quello che abbiamo visto fino ad ora:
          un frame che calcola e mostra le temperature CelsiusToFahrenheitFrame.java e un'applicazione che lo usa: UseCelsiusToFahrenheitFrame.java
      ESERCIZIO:riscrivere le applicazioni illustate in questo punto usando lo stile di programmazione CONSIGLIATO.
    4. "BEYOND THE BASICS"
      1. A proposito di EREDITARIETA':
        FrameTest4.java,
      2. Un esempio, scritto in un cattivo stile di programmazione, che illustra lo "scope" delle variabili (ATTENZIONE: e' un po' diverso da quello del libro):
        Contrived.java,
      3. Introduzione agli applet:
        un semplice applet MyApplet.java e il file HTML che lo usa (ATTENZIONE: il browser che avete a disposizione potrebbe non riconoscere il package swing) DisplayApplet.html (disponibile anche come file di testo: DisplayApplet.txt)
PRIMA DELLA LEZIONE SUCCESSIVA:
Leggere il "Summary" del Capitolo 4.
Leggere le note su " Programmazione Object-Oriented (a prescindere da Java)".


[Ferruccio Damiani - DIDATTICA] [Corsi di Studi in Informatica]

Last update: Oct 06, 2000