mercoledì 17 aprile 2019

martedì 16 aprile 2019

Lezione del 16/04/2019: interfacce, classi annidate e interne, interfacce funzionali, espressioni lambda, collections (1/2)

Intefacce funzionali. Espressioni lambda. Le Collection. Gerarchia delle interfacce di tipo Collection: Iterable, Collection, List, Set, SortedSet, Queue. Tre modi per iterare su una collezione. L'interfaccia Iterator. Collezioni fondamentali: ArrayList, LinkedList, HashSet, TreeSet, HashMap, LinkedHashMap, TreeMap. Metodi di ogni collezione. ListIterator e il metodo listIterator.

Esonero dell'8/4/2019

Ci siamo messi alla prova!!!


venerdì 5 aprile 2019

Lezione del 05/04/2019: interfacce, metodi di default, statici e privati nelle interfacce, iterabilità, esercizi

Le interfacce in Java: metodi pubblici, metodi di default, statici e privati nelle interfacce. Iterabilità mediante le interfacce Iterable e Iterator. Esercizi: DistributoreAutomatico, EssereVivente. SequenzaAritmetica e SequenzaAritmeticaConPasso iterabili. Rendere iterabile un array di stringhe.


Lab del 03/04/2019: esercizi su ereditarietà e polimorfismo

Esercizi: ContoBancario, espressioni matematiche. Rendere iterabile una lista di interi mediante Iterable/Iterator.


martedì 2 aprile 2019

Lezione doppia del 02/04/2019: polimorfismo, classe Object e liste

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. Metodi e classi final. Interfacce in Java: dichiarazione, implementazione. Introduzione alle liste; metodi di ArrayList. Introduzione alle interfacce.


venerdì 29 marzo 2019

Lezione 29/03/2019: 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.

venerdì 22 marzo 2019

Lezione doppia del 22/03/2019: esercizio ListaDiInteri, heap&stack, incapsulamento, metodi/campi statici enumerazioni, tipi wrapper, autoboxing/unboxing

Esercizio ListaDiInteri. 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.