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)