Topic outline

  • General

  • Orario delle lezioni


    INIZIO CORSO IN AULA INFORMATICA

    Edificio di via Tigor 22 - Trieste

    LUNEDI' 19 FEBBRAIO 2018

    • Orario delle lezioni
      Libro di testo
      Lun 12.00 - 14.00 Aula Informatica - Via Tigor Concetti di informatica e fondamenti di Java (6° edizione)

      Mar 11.00 - 14.00 Aula Informatica - Via Tigor

      Cay Horstmann - Apogeo

      ISBN 9788891617378

  • Programma del corso e progetti per l'esame

  • Una prima prova di Java

    Disegnare una faccia stilizzata

    Scrivete un programma FacePrinter che, usando caratteri, visualizzi un viso, auspicabilmente migliore di questo:

    //////
    (| o o |)
    || ^ ||
    |_\_/_|



    Usare i commenti per indicare quando vengono visualizzati i capelli, le orecchie, la bocca e così via.

    NB: si usi l'istruzione Java System.out.println, visualizzando così il risultato nella finestra di output dell'ambiente di programmazione NetBeans.

  • Cominciamo a lavorare con gli oggetti

     

  • Le classi e la loro interfaccia pubblica

     

  • I tipi di dati fondamentali

     

  • Strutture condizionali

     

  • Cicli

     

  • Array ed array list

     

  • Esecuzione di un'applicazione Java


    • Un semplice modo di eseguire un'applicazione Java è creare un file comandi (con suffisso .bat) che provveda a lanciare l'eseguibile java.exe appartenente al Java Runtime Environment (JRE). Tale file richiama la classe principale, contenente il metodo main, ed a cascata le eventuali altre classi dell'applicazione (i file .class dei bytecode).

      Un altro sistema è compattare tutte le classi che compongono l'applicazione in un file di tipo executable jar, con suffisso .jar. Tale file viene creato automaticamente da NetBeans e si può trovare nella sottocartella denominata dist del progetto. Tale file è associato a in Windows all'eseguibile "lanciatore" javaw.exe, in modo che facendo doppio click sul file . jar l'applicazione viene eseguita.

      Esistono poi anche dei compilatori, che producono un vero e proprio file eseguibile, compatibile con la piattaforma richiesta, a partire dai file .class di un progetto Java.

      Si provino gli esempi allegati (il primo va decompattato in una cartella).

  • Un esempio di interfaccia

     

  • Gestire eventi sul frame

     

    • Negli esempi che seguono, che fanno riferimento al libro di testo, viene visualizzato un semplice JFrame contenente un pulsante. Al click sul pulsante viene lanciato un evento azione, che fa apparire una semplice finestrella che conta il numero di click eseguiti.

    • I tre esempi illustrano tre modalità diverse di gestire l'evento azione, utilizzando una classe che implementa l'interfaccia ActionListener. Precisamente:

      1. attraverso una classe separata;
      2. attraverso una classe interna con nome;
      3. attraverso una classe interna anonima.
  • Esempio di gestione del mouse

     

    • Nel programma allegato, che fa riferimento al libro di testo, viene illustrato un semplice esempio di gestione del mouse. Lanciando il programma apparirà un JFrame con un rettangolo. Eseguendo un click del mouse sul JFrame, il rettangolo si sposterà nella posizione indicata dal click.

    • Nel precedente esempio la gestione del mouse è stata affidata ad una classe interna con nome. Si provi a modificare l'esempio affidando la gestione del mouse ad una classe separata (che può essere una classe distinta o anche lo stessa classe che contiene il metodo paintComponent). Si provi anche a gestire lo stesso programma con una classe interna anonima.
  • Gestire eventi di temporizzazione

     

    • Nel programma allegato, che fa riferimento al libro di testo, viene illustrato come gestire eventi di temporizzazione che consentono di realizzare semplici animazioni.

      Lanciando il programma, verrà visualizzato un JFrame con un rettangolo in movimento. La temporizzazione del movimento avviene attraverso un oggetto della classe Timer: ad intervalli prefissati vengono lanciati degli eventi di tipo azione, che vengono gestiti dal programma attraverso una classe interna che implementa l'interfaccia ActionListener e nel cui metodo actionPerformed viene eseguito il movimento del rettangolo.

    • Si provi a modificare il programma in modo che sia una classe separata a reagire agli eventi di tipo azione lanciati dal Timer.
  • Un semplice esempio di progetto con interfaccia

     

  • Un esercizio su interfacce ed ereditarietà

     

    • Si crei un progetto NetBeans contenente due classi: Square e Circle. La classe Square sarà una sottoclasse della classe Rectangle2D.Double, mentre la classe Circle sarà una sottoclasse della classe Ellipse2D.Double. Entrambe implementeranno un'interfaccia Measurable contenente i due metodi getArea e getPerimeter, che consentiranno di calcolare area e perimetro delle due figure geometriche.

      Si realizzi anche una semplice classe di test che consenta di verificare il funzionamento delle due classi sopra citate.

  • I rettangoli che rimbalzano

     

    • Si riconsideri il programma presentato nella sezione "Gestire eventi di temporizzazione" e lo si modifichi in modo da far rimbalzare il rettangolo al raggiungimento dei bordi del frame.

      Si provi poi a modificare ancora il programma gestendo il movimento di più rettangoli colorati in contemporanea. Si consenta all'utente di scegliere il numero di rettangoli iniziale e di variarlo nel corso dell'esecuzione. Si consenta anche all'utente di gestire la velocità del movimento variando l'intervallo di temporizzazione del timer.

  • Qualche esercizio ancora