giovedì 30 marzo 2017

Lezione 30/03/2017: lezione un po' speciale...

Ouverture a "sorpresa" con paste. Riassunto sulle interfacce, trasversalità delle interfacce, estensibilità mediante la parola chiave default e metodi statici nelle interfacce. Implementazione delle interfacce dalle enumerazioni e motivazione. Esempio delle espressioni matematiche con l'estensibilità dell'operatore binario. Introduzione a classi annidate e classi interne.


mercoledì 29 marzo 2017

Lezione del 29/3/2017: enumerazioni e metodi; metodi e classi final; le interfacce

Metodi e classi interne. 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.

Lab del 29/03/17: esercizi e interfacce; il debugger

Esercizi: Filtro; Espressioni matematiche. Esercizio: HTML. Definizione di interfaccia. L'esempio dell'interfaccia Espressione vs. la classe astratta Espressione. Utilizzare il debugger.


lunedì 27 marzo 2017

Lezione 27/03/2017: polimorfismo e classe java.lang.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: clone, equals, getClass, hashCode, toString. Sovrascrivere i metodi toString, equals e clone.


giovedì 23 marzo 2017

Lezione 23/03/2017: ancora su ereditarietà; la classe ArrayList; polimorfismo

La classe ArrayList: metodi. Il costrutto for each. Introduzione alle interfacce e alle eccezioni. Esercizio LibreriaComponibile. Introduzione al polimorfismo.
 
 

mercoledì 22 marzo 2017

lunedì 20 marzo 2017

giovedì 16 marzo 2017

Lezione 16/03/2017: 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. Funzionamento dei costruttori nella gerarchia di ereditarietà. Differenza tra overriding e overloading. Visibilità di campi e metodi: pubblica, privata, protetta e di package.


Prova del 15/03/2017

Ci siamo messi alla prova!

Lezione 13/03/2017: ancora sugli array, esercizi di preparazione

Ancora su array; esercizi su heap & stack ed esercizi di preparazione alla prova scritta.

giovedì 9 marzo 2017

Lezione del 09/03/2017: campi e metodi statici, enumerazioni, autoboxing e autounboxing

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. 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. Esercizi su heap & stack.


mercoledì 8 marzo 2017

Lab del 08/03/2017: esercizi su heap & stack; esercizi di base su array e stringhe; esercizi su classi e metodi

Esercizi dall'esonero dell'anno scorso; esercizi su heap & stack; esercizi su array e stringhe. Segmento e Punto; implementazione di Rettangolo con Punto; BarraDiEnergia.

lunedì 6 marzo 2017

Lezione del 06/03/2017: riferimenti; heap & stack; package; importazione di classi

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.

giovedì 2 marzo 2017

Lezione del 02/03/2017: decisione (if, ?, switch); iterazione (while, for).

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. Le istruzioni break e continue. Eleganza del codice e coding horror.


Lab del 01/03/2017: esercizi ed esempi

L'esercizio Rettangolo. Implementazione di append in StringBuilder. L'iterazione di String.replace. Esercizio Counter + Tornello. Introduzione a if...else, for and while. import e package.