martedì 31 marzo 2015

Lezione 31/03/2015: classi annidate e interne; classi anonime; espressioni lambda

Classi interne: classi top-level, classi annidate e interne. Classi anonime. Espressioni lambda. Esercizio: lista linkata con classi interne (provate a farlo con add in coda ottimizzato).


giovedì 26 marzo 2015

Lezione 26/03/2015: interfacce; esercizio con Iterable e Iterator; for "each"

Interfacce in Java: dichiarazione, implementazione. Esempio: Iterabile. Differenza tra interfacce e classi astratte. Ereditarietà multipla: il problema del diamante. Interfacce notevoli. Esercizio: MyString con Iterator e Iterable. Istruzione for "each"

mercoledì 25 marzo 2015

Lab 25/03/2015: esercizi

ContoBancario e Operazione (in versione Java 7 e Java 8). Espressioni. Debugging con Eclipse.


martedì 24 marzo 2015

Lezione 24/3/2015: Polimorfismo e classe Object

Polimorfismo: definizione, esempi e casistiche. Esempi: la classe Impiegato, ImpiegatoStipendiato e ImpiegatoACottimo. La parola chiave super per accedere a metodi e campi della superclasse. L'operatore instanceof. Downcasting e upcasting: differenze ed effetti sull'interfaccia pubblica. La classe universale Object e i suoi metodi principali. Sovrascrivere i metodi toString, equals e clone.


giovedì 19 marzo 2015

Lezione 19/03/2015: ereditarietà (2)

Overriding e overloading. Differenza tra ereditarietà (is-a) e composizione (has-a). Esercizi: BarraDiEnergia e BarraDiEnergiaConPercentuale. Come creare il livello di uno sparatutto con 4 righe di codice.


18/03/2015: ci siamo messi alla prova!

Ho dimenticato di "farvi la foto"... questi sono i vostri colleghi dell'anno scorso:



Lezione 17/03/2015: Ereditarietà

Una lezione molto molto importante sull'ereditarietà: abbiamo introdotto il concetto di ereditarietà, di classi e metodi astratti, parole chiave this e super nei costruttori.


martedì 10 marzo 2015

Lezione 10/03/2015: enumerazioni, autoboxing e autounboxing

Enumerazioni. Esempio: SemeCarta e ValoreCarta. Dichiarazione di una enumerazione. Costruttori, campi e metodi di un'enumerazione. I metodi values e valueOf. Enumerazioni e switch. Autoboxing (vedi immagine sotto :-)), auto-unboxing. Classi wrapper e metodi e costanti delle classi wrapper. Confrontare valori di tipi primitivi vs. oggetti vs. valori di enumerazioni.


giovedì 5 marzo 2015

Lezione 05/03/2015: gli array, metodi e campi statici, enumerazioni

Array: dichiarazione, inizializzazione, accesso. Numero variabile di parametri. Array bidimensionali. Vantaggi dei metodi e dell'incapsulamento. Metodi e campi statici: modalità di accesso dall'interno e dall'esterno della classe. Perché il main() è static? Importazione statica di campi e metodi. Enumerazioni. Esempio: SemeCarta e ValoreCarta. Dichiarazione di una enumerazione.

mercoledì 4 marzo 2015

Lab 04/03/2015: decisione (if, ?, switch); iterazione (while, for); esercizi.

Strutture di controllo: if, else, il problema dell'else sospeso, else if, operatore di selezione ?, istruzione switch. Esercizi: estrazione del carattere centrale, saluto casuale. Introduzione ai costrutti iterativi: while, do..while, for. Esercizi: calcolare le potenze di 2 fino a 2^N.


martedì 3 marzo 2015

Lezione 03/03/2015: riferimenti e oggetti; stack & heap; campi e metodi statici; Scanner, package

La classe String e i suoi metodi. Riferimenti e oggetti. Anatomia della memoria: stack e heap. Metodi statici. Lettura dell'input da console: la classe Scanner. Package. Package standard e package di default. La dichiarazione import e la parola chiave package.