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.
Blog e sito Web del corso di Metodologie di Programmazione (Corso di Laurea in Informatica, canale M-Z)
giovedì 30 marzo 2017
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.
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
mercoledì 22 marzo 2017
Lab del 22/3/2017: esercizi sull'ereditarietà
Esercizi (dalle diapositive): Animale. ContoBancario. DistributoreDiBevande.
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.
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.
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.
Enumerazioni. Esempio: SemeCarta e ValoreCarta. Dichiarazione di una enumerazione. Costruttori, campi e metodi di un'enumerazione. I metodi values e valueOf. Enumerazioni e switch.
mercoledì 8 marzo 2017
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.
Iscriviti a:
Post (Atom)