Programmi java utilizzati nelle lezioni

Lezione 1

Un programma che stampa un messaggio: PrimoProgramma.java
 

Lezione 2

Un programma che calcola l'area di un rettangolo: AreaRettangolo.java
 

Lezioni 3 e 4

Due programmi che utilizzano variabili di tipo int, double, long e alcune funzioni della classe Math: TestNumeri1.java e TestNumeri2.java.

Un programma che mostra alcuni esempi delle funzioni della classe String: TestStringhe.java.

Lezioni 5 e 6

Le strutture di controllo.
Un programma che, dato un numero intero n, calcola la massima potenza di 2 che divide n (esempio: se n = 24, il programma trova 2^3): CalcolaPotenze.java.
Un programma che definisce un numero intero a caso tra 1 e 10000 finché tale numero non risulta essere il "numero bersaglio" 5. Dopo di che stampa il numero di tentativi che sono stati necessari per trovarlo: CercaNumero.java.
Un programma che simula un certo numero di lanci di due dadi e calcola il numero di volte  che si ottiene come punteggio un doppio 6. Il programma inoltre stampa la frequenza con cui si è presentato l'evento e la probabilità: DueDadi.java.
Un programma che stampa la tabella pitagorica dei numeri da 1 a 10 in un formato incolonnato: Tabella.java.
Un programma che stampa la "sequenza 3N+1" (cioè la sequenza in cui il primo elemento è un numero dato e il generico elemento è ottenuto dal precedente dividendolo per 2 se è pari, moltiplicandolo per 3 ed aggiungendo 1 se è dispari): Sequenza.java.
Un programma che sceglie un numero a caso e stabilisce se è pari o dispari: NumeriPariDispari.java. Un programma che simula il lancio di due dadi un numero fissato di volte e stabilisce quante volte si presenta il punteggio "doppio sei": DoppioSei.java. Un programma che scrive una parola di 5 lettere scelte a caso: CostruttoreParole.java. Un programma che inventa una parola a caso di 10 lettere e stabilisce se tale parola contiene il carattere 'd': RicercaLettera.java.
 

Lezione 7

Lettura di dati in input da console: un modello (piuttosto grezzo) per leggere dati da console di tipo int, double o String: LeggiDati1.java.
Un secondo modello per leggere dati da console, sempre di tipo int, double o String (in questo secondo caso c'è un controllo migliore del tipo di dato inserito, che se è errato, viene riletto): LeggiDati2.java.
 

Lezione 8

Utilizzo delle procedure. Un semplice programma che chiede all'utente di indovinare, entro tre tentativi, un numero "pensato" dal calcolatore: IndovinaNumeri.java. Il programma utilizza un modo per leggere dei dati dalla finestra di console riassunto nelle classi della Lezione 7.
Esempio di variabili di classe: il programma precedente con una variante: una variabile che conta il numero di partite vinte: IndovinaNumeri1.java.
Una classe che contiene vari metodi (funzioni matematiche) utilizzabili in altre classi: MiaMath.java. Esempio di utilizzo della classe MiaMath: ProveMiaMath.java. Un albero di Natale: Albero.java.

Un programma che stampa una carta da gioco: ScegliCarta.java; un programma che testa il teorema di Cesaro (utilizzando l'algoritmo di Euclide): TestEuclide.java.
 

Lezione 9

Classi e oggetti. Un primo esempio di classe: la classe Studente.java e un esempio di sua applicazione: ProvaStudenti.java.

Un altro esempio di classe: la classe Attore.java e un suo utilizzo (molto grezzo, brutto e criticabile) GestioneTeatro.java.
 

Lezione 10

Esempi di classi e oggetti: una classe che definisce il comportamento di una formica: Formica.java e una classe che simula e studia il movimento di tre formiche nel piano: MarciaFormiche.java.
Riutilizzo della classe Formica.java per ottenere un'altra simulazione (un JApplet): AppletMarciaFormiche.html
File utilizzati per la costruizione dell'applet (oltre a Formica.java): FormicaCompleta.java, MarciaFormiche2.java

Lezione 11

La classe ContoCorrente.java (commentata con sintassi corretta per il programma javadoc) e la classe TestConto.java che testa la classe precedente.
La classe Anagrafe.java che utilizza variabili static e non static (scopo della classe: assegnare ad ogni oggetto un numero progressivo cioè al primo oggetto creato il numero 1, al secondo oggetto creato il numero 2 ecc.).
La classe ProvaStringBuffer.java per testare la diversa efficienza della classi String e StringBuffer.
 

Lezione 12 (array)

Alcuni esempi di utilizzo di array. La classe Conto.java e un suo utilizzo nella classe SimulazioneConto.java.

Lezioni 13 e 14 (Ereditarietà)

Discussione della soluzione del primo esercizio della prima lista degli esercizi proposti in aula computer: Terne.java.
Primo esempio di ereditarietà: la classe Veicolo.java e le sottoclassi: Auto.java, Camion.java e Moto.java. Una classe per testarle: TestVeicolo.java.
 

Lezione 15 e 16 (Ereditarietà: costruttori di sottoclassi, super e super())

Esempio di classi e sottoclassi: un contratto telefonico per un telefono fisso e un telefono mobile hanno in comune alcune caratteristiche riassunte dalla classe ContrattoTelefonico.java. La sottoclasse ContrattoFisso.java riscrive un metodo delle superclasse ed eredita gli altri. Analogamente la sottoclasse ContrattoMobile.java eredita tutti i metodi di ContrattoTelefonico, salvo riscriverne uno per il calcolo della tariffa. La classe TestContrattoTelefonico.java testa le classi precedenti.
Esempio: la classe Orologio.java e la classe OrologioCucu.java (trattate negli esempi discussi in aula computer).
 

Lezione 17 (Polimorfismo)

Le classi Veicolo, Auto, Camion e Moto modificate per far vedere un esempio di polimorfismo: Veicolo1.java, Auto1.java, Camion1.java, Moto1.java. Una classe per testarle: TestVeicolo1.java.
Altro esempio di polimorfismo: la classe Lavoratore.java con le sottoclassi: Capo.java, Impiegato.java, Fattorino.java e la classe Test: TestLavoratori.java.
 

Lezione 18 (Esempi di polimorfismo e classi astratte; il metodo toString() di Object)

Un esempio di classe astratta: la classe FormaGeometrica.java e le sue sottoclassi Quadrato.java, Rettangolo.java e Cerchio.java. Una classe per testare le tre classi dette e mostrare un esempio di polimorfismo: TestForme.java.
Il metodo toString() della classe Object. Un esempio di utilizzo: la classe Fiore1.java (senza la soprascrittura del metodo toString()) e la classe Fiore2.java (con la soprascrittura del metodoToString()) e un test delle due classi: TestFiori.java.
 

Lezione 19 (Primi esempi di applet)

(N.B. per visionare gli applet proposti qui e in seguito è necessario avere un navigatore con Java abilitato).
Un applet che disegna alcune forme geometriche (un segmento, il perimetro di un rettangolo, un ellisse e un rettangolo, in vari colori): ProvaApplet1.java. Visiona l'applet: ProvaApplet1.hml.
Un applet che scrive una stringa e qualche forma geometrica: ProvaApplet2.java. Visiona l'applet: ProvaApplet2.html.
Un applet che disegna ancora qualche forma geometrica: ProvaApplet3.java. Visiona l'applet: ProvaApplet3.html.
Una classe che realizza un'automobilina: Automobile.java e l'utilizzo della classe in un applet per disegnare vari oggetti ti tipo Automobile: ProvaApplet4.java. Visiona l'applet: ProvaApplet4.html.
 

Lezione 20 (Esempi di Applet, utilizzo della classe Graphics2D)

Un applet che stampa stringhe in font diversi: AppletStringa.java. Visiona l'applet: AppletStringa.html.
Un applet che disegna un cerchio sempre nel centro dell'applet (comunque venga modificata la finestra dell'applet): AppletCerchio.java. Visiona l'applet: AppletCerchio.html.
Un applet che traccia il grafico della funzione y = sen(x): AppletSeno.java. Visiona l'applet: AppletSeno.html.
Ancora esempi di applet e utilizzo di Graphics2D: tracciare linee più o meno grosse (con setStroke()): AppletGraphics2D.java. Visiona l'applet: AppletGraphics2D.html. Colorare figure in modo non omogeneo: AppletGrAv.java. Visiona l'applet: AppletGrAv.html.
 

Lezione 21 (Gestione di eventi)

Un applet che reagisce alle azioni del mouse: AppetMouse1.java e la classe (esterna) che definisce il ricevutore di eventi:  RicevitoreEventiMouse.java. Lo stesso applet ma con la classe interna: AppletMouse2.java. Un applet che disegna un quadrato in varie zone dello schermo (in corrispondenza al punto in cui viene premuto il mouse): AppletMouse3.java. Visiona l'applet: AppletMouse3.html.
 

Lezioni 22 e 23 (gestione eventi e bottoni)

Un applet che mostra un quadrato che cambia colore quando viene premuto il mouse al suo interno: AppletMouse4.java. Visiona l'applet: AppletMouse4.html. Un applet che reagisce ai movimenti del mouse, scrivendo le coordinate del punto in cui si trova il mouse: AppletMovimento.java. Visiona l'applet: AppletMovimento.html. Un applet che disegna un segmento definito dai movimenti del mouse: AppletDisegno.java. Visiona l'applet: AppletDisegno.html. Un applet che utilizza un bottone: AppleConBottone1.java. Visiona l'applet: AppletConBottone1.html.
Utilizzo di una classe interna anonima per associare un ricevitore di eventi: l'applet AppletMouse4Nuovo.java che si comporta esattamente come AppletMouse4 ma con un implementazione diversa. Visiona l'applet: AppletMouse4Nuovo.html.
 

Lezione 24 (JApplet, animazioni - Array).

JApplet: l'applet "AppletConBottone1" rifatto in un JApplet: AppletConBottone2.java. Visiona l'applet: AppletConBottone2.html.
Un JApplet con un disegno e un bottone: Movimento1.java. Visiona l'applet: Movimento1.html. Il JApplet precedente lievemente modificato per ottenere un'animazione: Movimento2.java. Visiona l'applet: Movimento2.html. La stessa animazione completata con un bottone che la fa partire e la ferma (utilizzo del metodo stop() del JApplet): Movimento3.java. Visiona l'applet: Movimento3.html.
Esempi di Layout: tre applet che utilizzano BorderLayout, GridLayout e FlowLayout: primo esempio: EsempioLayout1.java. Visiona applet: EsempioLayout1.html. Secondo esempio:EsempioLayout2.java. Visiona applet: EsempioLayout2.html. Terzo esempio: EsempioLayout3.java. Visiona applet: EsempioLayout3.html.
Un ultimo esempio: un parallelepipedo che ruota: AppletSolido.html. Le classi utilizzate per ottenere l'applet: Parallelepipedo.java; SpazioToPiano.java; AppletSolido.java.
 

Ulteriore collezione di esempi di JApplet (lezioni 21-24)