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.