|
|
CONSIGLIATO DA LIBRINFORMATICA
Thinking in Java quarta edizione vol.1 - I Fondamenti
|
| Editore | Pearson Education Italia |
| Autore | Eckel Bruce |
| Titolo originale | Thinking in Java fourth edition |
| Editore originale | Prentice Hall |
| Pagine | 554 |
| Volumi | 1 |
| Livello | Intermedio-Avanzato |
| Lingua | Italiano |
| Data pubblicazione | 11 - 2006 |
| ISBN | 8871923030 |
|
|
| Prezzo di copertina | Sconto | Prezzo Librinformatica |
| Euro 35,00 | 5% | Euro 33,25 |
|
Prefazione
Java SE5 e SE6
Java SE6
La quarta edizione
Modifiche
Note sulla grafica di copertina
Ringraziamenti dell’autore
Introduzione
Prerequisiti
Imparare Java
Obiettivi
Imparare da questo libro
Documentazione JDK in HTML
Esercizi
Fondamenti di Java
Codice sorgente
Standard di codifica
Errori
Capitolo 1 – Introduzione agli oggetti
Progresso dell’astrazione
Un oggetto possiede un’interfaccia
Un oggetto fornisce servizi
Implementazione nascosta
Riutilizzo dell’implementazione
Ereditarietà
Relazione is-a e”is-like-a”
Intercambiabilità degli oggetti mediante polimorfismo
Gerarchia a radice comune
Contenitori
Tipi parametrizzati o generici
Creazione e durata degli oggetti
Gestione delle eccezioni e trattamento degli errori
Programmazione concorrente
Java e Internet
Che cos’è il Web?
Programmazione client/server
Il Web come gigantesco server
Programmazione lato client
Plug-in
Linguaggi di scripting
Java
Alternative
.NET e C#
Confronto tra Internet e intranet
Programmazione lato server
Riepilogo
Capitolo 2- Tutto è un oggetto
Gli oggetti si manipolano per riferimento
Tutti gli oggetti devono essere creati
La registrazione dei dati
Un caso speciale: i tipi primitivi
Numeri a precisione elevata
Gli array in Java
Non occorre mai distruggere un oggetto
Ambito di visibilità
Ambito di visibilità degli oggetti
Creazione di nuovi tipi di dato: class
Campi e metodi
Valori predefiniti per i membri di ritorno
Elenco degli argomenti
Come costruire un programma Java
Visibilità del nome
Utilizzo chiave static
Il vostro primo programma Java
Compilazione ed esecuzione
Commenti e documentazione incorporata
Commercio di documentazione
Sintassi
Inclusione diretta di codice HTML
Alcuni tag di esempio
Esempio di documentazione
Stile di codifica
Riepilogo
Esercizi
Capitolo 3 – Gli operatori
La dichiarazione più semplice: print
Utilizzo degli operatori Java
Precedenza
Assegnazione
Aliasing in fase di chiamata di metodo
Operatori matematici
Operatori unari di segno positivo e negativo
Incremento e decremento automatici
Operatori relazionali
Test sull’equivalenza degli oggetti
Operatori logici
Cortocircuito
Valori letterali
Notazione esponenziale
Gli operatori bit a bit (bitwise)
Gli operatori di tipo shift
Operatore ternario: if-else
Operatori di String + e +=
Problemi ricorrenti nell’utilizzo degli operatori
Operatori di cast
Troncamento e arrotondamento
Promozione
Java non ha “sizeof”
Riepilogo degli operatori
Riepilogo
Capitolo 4 –Il controllo dell’esecuzione
true e false
if-else
Iterazione
do-while
for
L’operatore virgola
La sintassi foreach
return
break e continue
L’”abominevole” goto
switch
Riepilogo
Capitolo 5 – Inizializzazione e cleanup
L’inizializzazione è garantita dal costruttore
Overloading dei metodi
Come distinguere i metodi overloaded
Overloading con primitivi
Overloading sui valori di ritorno
Costruttori predefiniti
Parola chiave this
Chiamate di costruttori da costruttori
Significato di static
Cleanup: finalizzazione e garbage collection
A che cosa serve finalize()?
E’ necessario fare pulizia
Condizione di terminazione
Funzionamento della garbage collection
Inizializzazione dei membri
Come specificare l’inizializzazione
Inizializzazione del costruttore
Ordine di inizializzazione
Inizializzazione di dati static
Inizializzazione static esplicita
Inizializzazione di istanze non static
Inizializzazione di array
Elenchi di argomenti variabili
Tipi enumerativi
Riepilogo
Capitolo 6 – Controllo di accesso
Package: l’unità di libreria
Organizzazione del codice
Come creare nomi di package univoci
Collisioni
Librerie personalizzate di strumenti
Utilizzo di import per modificare i comportamenti
Osservazioni sui package
Modificatori di accesso in Java
Package access
public: accesso di interfaccia
Package predefinito
private: proibito toccare!
protected: accesso per ereditarietà
Interfaccia e implementazione
Accesso alle classi
Riepilogo
Capitolo 7 – Riutilizzo delle classi
Sintassi della composizione
Sintassi dell’ereditarietà
Inizializzazione della superclasse
Costruttori con argomenti
Delega
Combinazione di composizione ed ereditarietà
Come garantire un cleanup corretto
Occultamento del nome
Come scegliere tra composizione ed ereditarietà
L’accesso protected
Upcasting
Perché “upcasting”?
Nuovo confronto tra composizione ed ereditarietà
La parola chiave final
Dati di tipo final
Campi final non inizializzati
Gli argomenti final
Metodi di tipo final
final e private
Classi di tipo final
Importanti considerazioni su final
Inizializzazione e caricamento delle classi
Inizializzazione con ereditarietà
Riepilogo
Capitolo 8 –Polimorfismo
Revisione dell’upcasting
Dimenticate il tipo di oggetto
La svolta
Binding delle chiamate a metodi
Come ottenere il comportamento corretto
Estensibilità
Attenzione alla sovrascrittura dei metodi private!
Attenzione ai metodi e ai campi static!
Costruttori e polimorfismo
Ordine delle chiamate al costruttore
Ereditarietà e cleanup
Comportamento dei metodi polimorfi all’interno dei costruttori
Tipi di ritorno covarianti
Progettazione in funzione dell’ereditarietà
Confronto tra sostituzione ed estensione
Downcasting e tipi di informazioni a runtime
Riepilogo
Capitolo 9 – Le interfacce
Metodi e classi astratti
Interfacce
Dissociazione completa
“Ereditarietà multipla” in Java
Estensione di un’interfaccia mediante ereditarietà
Collisione di nomi nella combinazione di interfacce
Come adattarsi a un’interfaccia
Campi nelle interfacce
Inizializzare i campi nelle interfacce
Interfacce nidificate
Interfacce e factory
Riepilogo
Capitolo 10 – Le classi interne
Creazione delle classi interne
Collegamento alla classe esterna
Utilizzo di .this e .new
Classi interne e upcasting
Classi interne, metodi e ambiti
Classi interne anonime
Nuove considerazioni su Factory Method
Classi nidificate
Classi all’interno di interfacce
Accesso dall’interno di classi a nidificazione multipla
Perché utilizzare le classi internet?
Closure e callback
Classi interne e framework di controllo
Come ereditare dalle classi interne
E’ possibile sovrascrivere le classi interne?
Classi interne locali
Identificatori delle classi interne
Riepilogo
Capitolo 11 – Come contenere gli oggetti
Generici e contenitori type-safe
Concetti di base
Aggiunta di gruppi di elementi
Visualizzazione e stampa
List
Iterator
ListIterator
LinkedList
Styack
Set
Map
Queue
PriorityQueue
Confronto tra Collection e Iterator
Foreach e iteratori
L’Adapter Method idiom
Riepilogo
Capitolo 12 – Stringhe
Stringhe invariabili
Confronto tra sovraccarico di “+” e StringBuilder
Ricorrenza non intenzionale
Operazioni sulle stringhe
Formattazione dell’output
printf()
System.out.format()
Classe Formatter
Modificatori di formato
Conversioni di Formatter
String.format()
Uno strumento per il dump esadecimale
Espressioni regolari
Principi fondamentali
Creazione di espressioni regolari
Quantificatori
CharSequence
Pattern e Matcher
Gruppi
Flag dei modelli
split()
Operazioni di sostituzione
reset()
Espressioni regolari e Java I/O
Scansione dell’input
Separatori di Scanner
Scansione con le espressioni regolari
StringTokenizer
Riepilogo
Appendice A – Supplementi
Supplementi scaricabili
Thinking in C: i fondamenti di Java
Seminari Thinking in Java
Seminario Hands-On Java su CD
Seminario Thinking in Objects
Thinking in Enterprise Java
Thinking in Patterns (with Java)
Seminario Thinking in Patterns
Consulenza e revisione di progetti
Appendice B – Risorse
Software
Editor e ambienti IDE
Libri
Analisi e progettazione
Python
Bibliografia dell’autore
Indice analitico
|
|
|
|