Collana Apogeo Education, 2016. — 846 p. — ISBN: 8891617377, 13 9788891617378.
Il libro di Horstmann, del quale proponiamo la sesta edizione italiana, si è imposto negli anni come efficace supporto didattico nei corsi universitari di programmazione e, al tempo stesso, come prezioso riferimento per il pubblico professionale.
Anche in questa edizione il testo mantiene le caratteristiche che, da oltre 15 anni, ne hanno decretato il grande successo: un approccio graduale alla programmazione, che permette di assimilare anche i concetti più difficili; una particolare enfasi sull’attività di problem-solving, della quale vengono resi espliciti i passaggi; una straordinaria ricchezza di esempi svolti, domande di verifica, esercizi e problemi.
Il testo è aggiornato alla versione 8 della JDK Standard Edition, pur mantenendo – ove possibile – la compatibilità con le versioni precedenti.
Capitolo:
Introduzione: Calcolatori e programmi, L’anatomia di un calcolatore, Il linguaggio di programmazione Java, L’ambiente di programmazione Java, Analisi di un semplice programma, Errori, Problem Solving: progettazione di algoritmi.
Utilizzare oggetti: Oggetti e classi, Variabili, Invocare metodi, Costruire oggetti, Metodi d’accesso e metodi modifi catori, La documentazione API, Realizzare un programma di collaudo, Riferimenti a oggetti, Applicazioni grafiche, Ellissi, segmenti, testo e colore.
Realizzare classi: Variabili di esemplare e incapsulamento, Progettare l’interfaccia pubblica di una classe, Realizzare la classe, Collaudo di unità 110, Problem Solving: tenere traccia dell’esecuzione, Variabili locali, Il riferimento this, Classi per figure complesse.
Tipi di dati fondamentali: Numeri, Tipi di numeri, Costanti, Aritmetica, Dati in ingresso e in uscita, Problem Solving: prima si risolve a mano, Stringhe.
Decisioni: L’enunciato if, Confrontare valori, Alternative multiple, Diramazioni annidate, Problem Solving: diagrammi di flusso, Problem Solving: preparare casi di prova, Variabili booleane e operatori, Applicazione: validità dei dati in ingresso.
Iterazioni: Il ciclo while, Problem Solving: esecuzione manuale, Il ciclo for, Il ciclo do, Applicazione: elaborazione di valori sentinella, Problem Solving: storyboard, Algoritmi di uso frequente che utilizzano cicli, Cicli annidati, Applicazione: numeri casuali e simulazioni, Usare un debugger.
Array e vettori: Array, Il ciclo for esteso, Algoritmi fondamentali per l’elaborazione di array, Problem Solving: adattamento di algoritmi, Problem Solving: progettare algoritmi facendo esperimenti, Array bidimensionali, Vettori, Collaudo regressivo.
Progettazione di classi: Individuare le classi, Progettare buoni metodi, Problem Solving: progettare i dati di un oggetto, Variabili statiche e metodi statici, Problem Solving: iniziare da un problema più semplice, Pacchetti, Ambienti per il collaudo di unità.
Ereditarietà: Gerarchie di ereditarietà, Realizzare sottoclassi, Sovrascrivere metodi, Polimorfismo, La superclasse universale: Object.
Interfacce: Uso di interfacce per il riutilizzo di algoritmi, Programmare con le interfacce, L’interfaccia Comparable, Usare interfacce di smistamento (callback), Classi interne, Oggetti semplifiati, Gestione di eventi, Costruire applicazioni dotate di pulsanti, Eventi di temporizzazione, Eventi del mouse.
Ingresso/uscita e gestione delle eccezioni: Leggere e scrivere file di testo, Acquisire e scrivere testi, Argomenti sulla riga dei comandi, Gestire eccezioni, Applicazione: gestione di errori in ingresso.
Ricorsione: Numeri triangolari, Metodi ausiliari ricorsivi, L’effi cienza della ricorsione, Permutazioni, Ricorsione mutua, Backtracking.
Ordinamento e ricerca: Ordinamento per selezione, Prestazioni dell’ordinamento per selezione, Analisi delle prestazioni dell’ordinamento per selezione, Ordinamento per fusione (MergeSort), Analisi dell’algoritmo di ordinamento per fusione, Effettuare ricerche, Problem Solving: stima del tempo di esecuzione di un algoritmo, Ordinamento e ricerca nella libreria Java.
Java Collections Framework: Una panoramica del Collections Framework, Liste concatenate, Insiemi, Mappe, Pile, code e code prioritarie, Applicazioni di pile e code.