Introduzione  

Lezione1  ; Primo programma: stampa di Pippo sullo schermo. Per fare
          ; cio' si usa il metodo System.out.println()

Lezione2  ; Uso delle variabili

Lezione3  ; Introduzione ai tipi di variabili: intere e a virgola mobile

Lezione4  ; Lettura di una variabile da tastiera.

Lezione5  ; Un programma: area e circ. di un cerchio dato il raggio

Lezione6  ; Il loop for e gli operatori relazionali (<,>,ecc.)

Lezione7  ; Esecuzione di un blocco di istruzioni in un loop for

Lezione8  ; L'esecuzione a seconda di una condizione: costrutto if

Lezione9  ; Esecuzione di un blocco di istruzioni appartenenti a un if

Lezione10 ; Il ramo opzionale else del costrutto if

Lezione11 ; Come annidare degli if dentro gli altri.

Lezione12 ; Il costrutto switch per test multipli in un programma divino

Lezione13  ; Il programma divino piu' funzionale tramite un for

Lezione14 ; I loop tramite il while

Lezione15 ; I loop tramite il do while

Lezione16  ; Introduzione ai metodi (chiamati funzioni in C)

Lezione17  ; Divisione in metodi del programma divino

Lezione18  ; Introduzione agli array monodimensionali

Lezione19  ; Uso di una variabile come indice di un array

Lezione20  ; La media di 10 numeri immessi da tastiera usando un array

Lezione21  ; Array a 2 o piu' dimensioni

Lezione22  ; Le stringhe di testo, che in java sono oggetti (non array
               di char), su cui si puo' operare con vari metodi dedicati.

Lezione23  ; Vediamo come rovesciare una stringa immessa da tastiera.

Per quanto riguarda i listati sulle strutture, esse sono sostituite dalle
classi, quindi salteremo direttamente alle conversioni dei listati C++

Lezione24  ; Gestione files: copia di un file (creazione di un backup)
             ; utilizzando le classi FileInputStream e FileOutputStream.

Lezione25  ; Gestione files: informazioni su un file tramite la classe
             ; java.io.File, specializzata per i file sulla macchina host.

Lezione26  ; Gestione files: copia di un file qualunque, analogo al "copy"
             ; del dos. Cio' e' possibile usando i parametri della linea di
             ; comando (gli argomenti che si scrivono dopo il nome del prog.).
             ; Ad esempio "java Jlez6c file1.txt file1.bak" copia il file1.txt
             ; sotto il nome di file1.bak.

Ora passiamo alla conversione dei listatini C++, che per lo piu' riguardano
la OOP. In realta' gia' nei listati precedenti abbiamo istanziato degli
oggetti, siamo stati costretti!

Lezione27   ; Creazione di una classe con metodi pubblici e dati privati.

Lezione28   ; Aggiungiamo il costruttore alla classe. Da notare che il
              ; distruttore in Java sarebbe il metodo finalize(), pero' a causa
              ; del GC (Garbage Collector, che dealloca automaticamente le
              ; risorse non piu' utili) risulta difficile capire quando sia
              ; effettivamente chiamato.

Lezione29   ; Rendiamo parametrizzato il costruttore.

Lezione30   ; Un esempio di polimorfismo: scriviamo 3 funzioni somma(),
              ; che hanno lo stesso nome, ma parametri diversi: una e' per
              ; numeri int, una per i long e l'ultima per i float.
              ; In questo modo facciamo una sovrapposizione di funzioni,
              ; detta "overload": possiamo scrivere somma() per sommare
              ; numeri int,long e float, senza preoccuparci, sara' il
              ; compilatore a scegliere la funzione giusta volta per volta,
              ; rendendo piu' semplice il nostro compito.
            
Lezione31   ; Un esempio applicato alle classi: sovrapposizione (overload)
              ; di costruttori.

Lezione32   ; Sperimentiamo l'ereditarieta' (inheritance) derivando dalla
              ; classe animale (superclasse) delle sottoclassi "figlie", che
              ; erediteranno le variabili e i metodi della classe "padre",
              ; risparmiandoci di riscriverle, e limitando il nostro lavoro
              ; all'aggiunta delle variabili e dei metodi peculiari delle
              ; classi derivate. Il riutilizzo del codice e' evidente.
               
Lezione33  ; Quando si istanziano degli oggetti da una classe, ognuno
              ; di questi oggetti dispone di copie personali dei metodi e
              ; delle variabili definite dalla classe.
              ; Cioe', se a e b sono due classi di tipo animale, le due
              ; variabili a.numerozampe e b.numerozampe sono autonome,
              ; per cui cambiando una non si modifica l'altra.
              ; E' possibile pero' definire STATIC degli elementi di una
              ; classe: cio' significa che se ne fa esistere una sola
              ; copia, condivisa da tutti gli oggetti istanziati.