Programma del Corso (a.a. 2005-2006)

Panoramica di Java: la macchina virtuale di Java. Creazione di file sorgenti. Compilazione ed esecuzione di un programma. Esempi.

Primi elementi di programmazione in Java: le variabili e gli 8 tipi primitivi: boolean, char, byte, short, int, long, float, double. Assegnazioni, costanti, conversione di tipi di dati. La classe String e alcuni dei suoi metodi. La classe Math e i suoi metodi. Operatori: aritmetici (+, -, *, /, %), di incremento e decremento (++ e --), operatori relazionali (<, >, <=, >=), operatori booleani (==, !=, &&, ||, !), operatore di assegnazione (=). Regole di precedenza tra operatori. Input e output. I commenti. Il programma javadoc.

Strutture di controllo: i blocchi, i cicli  while, do ... while e   for. Le istruzioni   if   e  switch. Lo sviluppo di un algoritmo.

Le subroutine (metodi) in Java: variabili statiche, subroutine statiche, parametri di una subroutine o metodo, valore di ritorno di un metodo, pacchetti di Java e loro importazione. Le classi API. I modificatori final   e   static. Metodi sovraccarichi.

Oggetti e classi: Classi in Java. Come definire una classe, variabili di istanza, metodi di istanza, l'interfaccia pubblica di una classe, costruttori di una classe. Costruzione e inizializzazione di oggetti, tipi di variabili, accesso ai metodi di un oggetto. Il parametro implicito this di una classe. I modificatori  public  e  private. Regole di accesso alle variabili di istanza. Classi di tipo static. Importare pacchetti (l'istruzione import).

Ereditarietà e polimorfismo: Costruzione di sottoclassi. La parola chiave extends. Costruttori delle sottoclassi. Il parametro super di una sottoclasse. Accesso ai metodi e alle variabili di una superclasse. Il polimorfismo e sue applicazioni.

Array: Creare e usare array, vari modi per inizializzare un array. Utilizzo di array nei programmi.

Interfacce e classi interne.   La creazione di un'interfaccia. Classi che implementano interfacce. Classi interne, classi interne anonime.

Applet e grafica: Definizione di applet. Il metodo init(). Il metodo paint(). La classe Graphics e la classe Graphics2D. Alcuni metodi per disegnare: drawLine(), drawString(), drawRect(), drawOval(), fillRect(), fillOval()... (per la classe Graphics) e draw() e fill() (per la classe Graphics2D). Font e colori (la classe Font e la classe Color). La classe JApplet e differenze tra un Applet e un JApplet; il metodo getContentPane() della classe JApplet. La classe JPanel e suo utilizzo per la costruzione di un disegno in un JApplet. Le classi Rectangle, Polygon ecc. Altre classi di javax.swing.

Gestione di eventi: Eventi generati dal mouse: le interfacce MouseListener e MouseMotionListenerListener; la classe MouseEvent. I 5 + 2 metodi delle due interfacce. Altri generatori di eventi: la classe JButton, l'interfaccia ActionListener e la classe ActionEvent.

I Layout: Le classi FlowLayout, BorderLayout, GridLayout e il loro utilizzo.

La classe Timer: I metodi start() e stop() della classe Timer. L'utilizzo della classe Timer per la creazione di animazioni. Il metodo stop() di un JApplet per fermare un'animazione.

Esempi: Implementazione di vari algoritmi.

Testi seguiti:
Deitel & Deitel, Java, fondamenti di programmazione, APOGEO.
D. Eck, Introduction to Programming Using Java, testo reperibile in rete all'indirizzo: http://math.hws.edu/javanotes.
C. Horstmann, Concetti di informatica e fondamenti di Java 2, APOGEO. (testo maggiormente consigliato)
Molto altro materiale è inoltre reperibile al sito ufficiale di Java: http://www.java.sun.com
(in particolare si veda la pagina: http://java.sun.com/docs/ dalla quale, ad esempio, si accede al tutorial).
Altro materiale è reperibile in migliaia di altri siti, più o meno affidabili.