mercoledì 28 marzo 2018

Lab del 28/03/2018: esercizi sull'ereditarietà

Esercizi (dalle diapositive): BarraDiEnergia, ListaOrdinataDiInteri, Tetris.

Lezione del 27/03/2018: 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. Introduzione a JUnit.


Lezione del 23/03/2018: prova!

Ci siamo messi alla prova!

mercoledì 21 marzo 2018

Lab del 21/03/2018: esercizi di preparazione

Esercizi su heap & stack ed esercizi di preparazione alla prova scritta (GestoreArray e StringaMangiona).

martedì 20 marzo 2018

Lezione del 20/03/2018: metodi e campi statici; enumerazioni; classi wrapper; autoboxing/unboxing

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.


venerdì 16 marzo 2018

Lezione del 16/03/2018: gli array; esercizio su heap & stack

Gli array. Definizione, inizializzazione, accesso agli elementi, lunghezza di un array. Matrici mediante array di array. Esercizio su heap & stack.

mercoledì 14 marzo 2018

Lab del 14/03/2018 (S): stringhe, costrutti di controllo e di iterazione

Esercizi su stringhe, flussi di controllo (switch-case), operatori di pre/post incremento e cicli for/while. Dopo aver svolto una serie di semplici esercizi per ognuna delle tematiche sopra citate, abbiamo affrontato nel dettaglio l'esercizio Cornice. Siamo partiti dalla definizione di un metodo statico in grado di stampare una matrice di caratteri NxN, abbiamo arricchito il metodo aggiungendo la possibilità di inserire una stringa all'interno della cornice ed infine, chiarendo la differenza tra metodo statico e metodo di istanza, abbiamo strutturato la classe CorniceStampabile definendo i campi, due costruttori (overloading) ed il metodo di classe toString(), focalizzando l'attenzione sulle buone norme di scrittura del codice.

martedì 13 marzo 2018

Lezione del 13/03/2018 (ER): 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.

venerdì 9 marzo 2018

Lezione del 09/03/2018: la classe String e i suoi metodi; heap & stack

La classe String e i suoi metodi. Riferimenti e oggetti. Anatomia della memoria: stack e heap. Metodi statici.

mercoledì 7 marzo 2018

Lab del 07/03/2018: esercizi

HelloWorld compilato con javac ed eseguito con java. Esercizi sulle espressioni booleane, interi e double. Esercizi sulle conversioni di tipo. L'esercizio Rettangolo e l'importanza dell'incapsulamento mediante implementazione privata.


Lezione del 06/03/2018: classi e oggetti, campi, metodi e costruttori

Consapevolezza del tipo di dato. Conversione esplicita, cast esplicito, cast implicito. Concetti fondamentali di programmazione orientata agli oggetti: classi vs. oggetti, campi e metodi (inclusi i costruttori) e politiche di accesso. Esercizi: La classe Contatore. 

venerdì 2 marzo 2018

Lezione del 02/03/2018: Introduzione al corso (2), concetti fondamentali, JDK, jshell, tipi primitivi, letterali e variabili

Oggi abbiamo completato l'introduzione al corso, fornito una panoramica sugli argomenti principali del corso (oggetti, incapsulamento, ereditarietà, polimorfismo) e parlato di tipi di dato primitivi, variabili, identificatori e letterali. Installazione di JDK ed Eclipse. Introduzione a JShell.

giovedì 1 marzo 2018

Lezione del 28/02/2018

E la prima lezione è andata!!! Abbiamo anche introdotto brevemente i progetti (ne riparleremo più avanti in queste settimane). Non dimenticatevi di iscrivervi al gruppo di discussione.