SERVIZIO CLIENTI 0541.628200  Lunedì - Venerdì / 8.30-17.30

IN EVIDENZA: Bonus Facciate e Agevolazioni Fiscali 2020 in Edilizia | Concorso scuola 2020

Sconto 15%
Concetti di informatica e fondamenti di Java

Concetti di informatica e fondamenti di Java

Autori Cay Horstmann
Editore Maggioli Editore
Formato Cartaceo
Dimensione 19x23,5
Pagine 804
Pubblicazione Gennaio 2020 (VII Edizione)
ISBN / EAN 8891639431 / 9788891639431
Collana Apogeo Education

settima edizione per Java 8, 9, 10 e 11

Prezzo Online:

54,00 €

45,90 €

Ordina ora per avere:
Ricezione entro 48h
Spedizione in 48h
Paga alla consegna senza costi aggiuntivi
Paga alla consegna senza costi aggiuntivi
Spedizione Gratuita
Aggiornamenti e Contenuti Digitali

Contenuti Digitali riservati ai Docenti

Il libro di Horstmann si è imposto negli anni come efficace supporto didattico nei corsi universitari di programmazione e, al tempo stesso, come prezioso riferimento per l’apprendimento autonomo.

Anche in questa edizione il testo mantiene le caratteristiche che da venti 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, esercizi e problemi.

Nella nuova edizione l’Autore ha introdotto, tra tanti miglioramenti, l’adeguamento alla versione Java 11 del linguaggio, nonostante la maggior parte degli esempi sia perfettamente funzionante anche con versioni precedenti, a partire da Java 8.

Cay Horstmann
Insegna Computer Science presso il Department of Computer Science della San Jose State University.

L’edizione italiana è a cura di Marcello Dalpasso
Docente di Sistemi per l’Elaborazione dell’Informazione presso la Scuola di Ingegneria dell’Università di Padova.

Presentazione della edizione italiana 
Prefazione 
Capitolo 1 - Introduzione  
Obiettivi del capitolo 
1.1 Calcolatori e programmi 
1.2 L’anatomia di un calcolatore 
1.3 Il linguaggio di programmazione Java 
1.4 L’ambiente di programmazione Java 
1.5 Analisi di un semplice programma  
1.6 Errori 
1.7 Problem Solving: progettazione di algoritmi  
1.7.1 Il concetto di algoritmo 
1.7.2 Un algoritmo che risolve un problema fi nanziario 
1.7.3 Pseudocodice  
1.7.4 Dagli algoritmi ai programmi  
Riepilogo degli obiettivi di apprendimento  
Elementi di libreria presentati nel capitolo 
Esercizi di riepilogo e approfondimento 
Esercizi di programmazione 
Capitolo 2 - Utilizzare oggetti 
Obiettivi del capitolo 
2.1 Oggetti e classi 
2.1.1 Utilizzare oggetti 
2.1.2 Classi 
2.2 Variabili  
2.2.1 Dichiarazioni di variabili  
2.2.2 Tipi  
2.2.3 Nomi  
2.2.4 Commenti 
2.2.5 Assegnazioni  
2.3 Invocare metodi 
2.3.1 L’interfaccia pubblica di una classe 
2.3.2 Parametri dei metodi  
2.3.3 Valori restituiti  
2.3.4 Dichiarazioni di metodi 
2.4 Costruire oggetti  
2.5 Metodi d’accesso e metodi modifi catori  
2.6 La documentazione API  
2.6.1 Consultare la documentazione API  
2.6.2 Pacchetti  
2.7 Realizzare un programma di collaudo  
2.8 Riferimenti a oggetti  
2.9 Applicazioni grafiche  
2.9.1 Finestre con cornice 
2.9.2 Disegnare in un componente 
2.9.3 Visualizzare un componente in un frame 
2.10 Ellissi, segmenti, testo e colore 
2.10.1 Ellissi e cerchi  
2.10.2 Segmenti 
2.10.3 Scrivere testo 
2.10.4 Colori  
Riepilogo degli obiettivi di apprendimento 
Elementi di libreria presentati in questo capitolo 
Esercizi di riepilogo e approfondimento  
Esercizi di programmazione  
Capitolo 3 - Realizzare classi  
Obiettivi del capitolo 
3.1 Variabili di esemplare e incapsulamento 
3.1.1 Variabili di esemplare 
3.1.2 I metodi della classe Counter 
3.1.3 Incapsulamento  
3.2 Progettare l’interfaccia pubblica di una classe  
3.2.1 Definire i metodi  
3.2.2 Definire i costruttori  
3.2.3 Usare l’interfaccia pubblica 
3.2.4 Commentare l’interfaccia pubblica 
3.3 Realizzare la classe  
3.3.1 Definire le variabili di esemplare  
3.3.2 Definire i costruttori 
3.3.3 Definire i metodi  
3.4 Collaudo di unità 
3.5 Problem Solving: tenere traccia dell’esecuzione 
3.6 Variabili locali  
3.7 Il riferimento this 
3.8 Classi per figure complesse 
Riepilogo degli obiettivi di apprendimento  
Esercizi di riepilogo e approfondimento  
Esercizi di programmazione 
Capitolo 4 - Tipi di dati fondamentali 
Obiettivi del capitolo  
4.1 Numeri 
4.1.1 Tipi di numeri 
4.1.2 Costanti  
4.2 Aritmetica 
4.2.1 Operatori aritmetici  
4.2.2 Incremento e decremento 
4.2.3 Divisione intera e resto  
4.2.4 Potenze e radici  
4.2.5 Conversione e arrotondamento 
4.3 Dati in ingresso e in uscita  
4.3.1 Acquisire dati 
4.3.2 Controllare il formato di visualizzazione 
4.4 Problem Solving: prima si risolve a mano 
4.5 Stringhe  
4.5.1 Il tipo di dato String  
4.5.2 Concatenazione 
4.5.3 Acquisire stringhe in ingresso  
4.5.4 Sequenze di escape  
4.5.5 Stringhe e caratteri  
4.5.6 Sottostringhe  
Riepilogo degli obiettivi di apprendimento  
Elementi di libreria presentati in questo capitolo  
Esercizi di riepilogo e approfondimento  
Esercizi di programmazione 
Capitolo 5 - Decisioni 
Obiettivi del capitolo 
5.1 L’enunciato if  
5.2 Confrontare valori  
5.2.1 Operatori relazionali 
5.2.2 Confrontare numeri in virgola mobile 
5.2.3 Confrontare stringhe 
5.2.4 Confrontare oggetti 
5.2.5 Confrontare con null  
5.3 Alternative multiple  
5.4 Diramazioni annidate  
5.5 Problem Solving: diagrammi di flusso  
5.6 Problem Solving: preparare casi di prova 
5.7 Variabili booleane e operatori  
5.8 Applicazione: validità dei dati in ingresso  
Riepilogo degli obiettivi di apprendimento 
Elementi di libreria presentati in questo capitolo  
Esercizi di riepilogo e approfondimento  
Esercizi di programmazione 
Capitolo 6 - Iterazioni  
Obiettivi del capitolo  
6.1 Il ciclo while  
6.2 Problem Solving: esecuzione manuale  
6.3 Il ciclo for 
6.4 Il ciclo do 
6.5 Applicazione: elaborazione di valori sentinella  
6.6 Problem Solving: storyboard  
6.7 Algoritmi di uso frequente che utilizzano cicli 
6.7.1 Calcolo di somma e valore medio 
6.7.2 Conteggio di valori che soddisfano una condizione 
6.7.3 Identifi cazione della prima corrispondenza 
6.7.4 Richiesta ripetuta fino al raggiungimento di un obiettivo  
6.7.5 Valore massimo e minimo 
6.7.6 Confronto di valori adiacenti 
6.8 Cicli annidati  
6.9 Applicazione: numeri casuali e simulazioni  
6.9.1 Generare numeri casuali  
6.9.2 Il metodo Monte Carlo  
6.10 Usare un debugger 
Riepilogo degli obiettivi di apprendimento 
Elementi di libreria presentati in questo capitolo 
Esercizi di riepilogo e approfondimento  
Esercizi di programmazione  
Capitolo 7 - Array e vettori  
Obiettivi del capitolo 
7.1 Array 
7.1.1 Dichiarazione e utilizzo di array  
7.1.2 Riferimenti ad array  
7.1.3 Array e metodi  
7.1.4 Array riempiti solo in parte 
7.2 Il ciclo for esteso 
7.3 Algoritmi fondamentali per l’elaborazione di array  
7.3.1 Riempimento 
7.3.2 Somma e valore medio  
7.3.3 Valore massimo e minimo 
7.3.4 Elementi con separatori  
7.3.5 Ricerca lineare 
7.3.6 Eliminazione di un elemento  
7.3.7 Inserimento di un elemento 
7.3.8 Scambio di elementi  
7.3.9 Copiatura di array  
7.3.10 Acquisizione di valori 
7.4 Problem Solving: adattamento di algoritmi  
7.5 Problem Solving: progettare algoritmi facendo esperimenti 
7.6 Array bidimensionali 
7.6.1 Dichiarazione di array bidimensionali 
7.6.2 Accesso agli elementi  
7.6.3 Individuazione degli elementi adiacenti  
7.6.4 Accedere a righe e colonne  
7.6.5 Dimensioni di un array bidimensionale  
7.7 Vettori 
7.7.1 Dichiarazione e utilizzo di vettori  
7.7.2 Il ciclo for esteso usato con vettori  
7.7.3 Copiatura di un vettore 
7.7.4 Classi involucro (wrapper) e auto-boxing  
7.7.5 Algoritmi per array usati con vettori  
7.7.6 Acquisizione di valori in un vettore  
7.7.7 Eliminazione di specifici valori  
7.7.8 Array o vettore? 
7.8 Collaudo regressivo  
Riepilogo degli obiettivi di apprendimento 
Elementi di libreria presentati in questo capitolo  
Esercizi di riepilogo e approfondimento  
Esercizi di programmazione  
Capitolo 8 - Progettazione di classi 
Obiettivi del capitolo  
8.1 Individuare le classi 
8.2 Progettare buoni metodi 
8.2.1 Un’interfaccia pubblica coesa 
8.2.2 Minimizzare le dipendenze  
8.2.3 Tenere distinti accessi e modifiche  
8.2.4 Minimizzare gli effetti collaterali  
8.3 Problem Solving: progettare i dati di un oggetto  
8.3.1 Gestione di un totale  
8.3.2 Conteggio di eventi  
8.3.3 Gestione di una raccolta di valori  
8.3.4 Gestione delle proprietà di un oggetto 
8.3.5 Oggetti con stati diversi 
8.3.6 Descrizione della posizione di un oggetto  
8.4 Variabili statiche e metodi statici 
8.5 Problem Solving: iniziare da un problema più semplice  
8.6 Pacchetti  
8.6.1 Organizzare classi in pacchetti  
8.6.2 Importare pacchetti  
8.6.3 Nomi di pacchetto 
8.6.4 Pacchetti e file di codice sorgente  
8.7 Ambienti per il collaudo di unità 
Riepilogo degli obiettivi di apprendimento  
Esercizi di riepilogo e approfondimento  
Esercizi di programmazione 
Capitolo 9 - Ereditarietà  
Obiettivi del capitolo 
9.1 Gerarchie di ereditarietà 
9.2 Realizzare sottoclassi  
9.3 Sovrascrivere metodi  
9.4 Polimorfismo  
9.5 La superclasse universale: Object  
9.5.1 Sovrascrivere il metodo toString 
9.5.2 Il metodo equals  
9.5.3 L’operatore instanceof  
Riepilogo degli obiettivi di apprendimento 
Esercizi di riepilogo e approfondimento 
Esercizi di programmazione 
Capitolo 10 - Interfacce 
Obiettivi del capitolo  
10.1 Uso di interfacce per il riutilizzo di algoritmi  
10.1.1 Individuare un tipo interfaccia 
10.1.2 Dichiarare un tipo interfaccia 
10.1.3 Implementare un tipo interfaccia  
10.1.4 Confronto tra ereditarietà e interfacce 
10.2 Programmare con le interfacce 
10.2.1 Conversione da classe a interfaccia  
10.2.2 Invocare metodi con variabili interfaccia 
10.2.3 Conversione da interfaccia a classe  
10.3 L’interfaccia Comparable 
10.4 Usare interfacce di smistamento (callback) 
10.5 Classi interne 
10.6 Oggetti semplificati  
10.7 Gestione di eventi  
10.7.1 Ricezione di eventi 
10.7.2 Classi interne come ricevitori di eventi  
10.8 Costruire applicazioni dotate di pulsanti  
10.9 Eventi di temporizzazione 
10.10 Eventi del mouse 
Riepilogo degli obiettivi di apprendimento 
Elementi di libreria presentati in questo capitolo  
Esercizi di riepilogo e approfondimento  
Esercizi di programmazione 
Capitolo 11 - Ingresso/uscita e gestione delle eccezioni  
Obiettivi del capitolo 
11.1 Leggere e scrivere fi le di testo 
11.2 Acquisire e scrivere testi 
11.2.1 Acquisire parole 
11.2.2 Acquisire caratteri  
11.2.3 Classificare caratteri  
11.2.4 Acquisire righe 
11.2.5 Analizzare una stringa 
11.2.6 Convertire stringhe in numeri  
11.2.7 Evitare errori nell’acquisizione di numeri 
11.2.8 Acquisire numeri, parole e righe 
11.2.9 Impaginare i dati in uscita  
11.3 Argomenti sulla riga dei comandi  
11.4 Gestire eccezioni  
11.4.1 Lanciare eccezioni  
11.4.2 Catturare eccezioni  
11.4.3 Eccezioni a controllo obbligatorio  
11.4.4 Chiudere risorse  
11.4.5 Progettare eccezioni  
11.5 Applicazione: gestione di errori in ingresso  
Riepilogo degli obiettivi di apprendimento  
Elementi di libreria presentati in questo capitolo 
Esercizi di riepilogo e approfondimento  
Esercizi di programmazione 
Capitolo 12 - Ricorsione  
Obiettivi del capitolo 
12.1 Numeri triangolari 
12.2 Metodi ausiliari ricorsivi  
12.3 L’efficienza della ricorsione  
12.4 Permutazioni 
12.5 Ricorsione mutua  
12.6 Backtracking  
Riepilogo degli obiettivi di apprendimento  
Esercizi di riepilogo e approfondimento  
Esercizi di programmazione  
Capitolo 13 - Ordinamento e ricerca 
Obiettivi del capitolo 
13.1 Ordinamento per selezione 
13.2 Prestazioni dell’ordinamento per selezione  
13.3 Analisi delle prestazioni dell’ordinamento per selezione  
13.4 Ordinamento per fusione (MergeSort)  
13.5 Analisi dell’algoritmo di ordinamento per fusione 
13.6 Effettuare ricerche  
13.6.1 Ricerca lineare 
13.6.2 Ricerca binaria  
13.7 Problem Solving: stima del tempo di esecuzione di un algoritmo  
13.7.1 Tempo lineare  
13.7.2 Tempo quadratico 
13.7.3 Lo schema triangolare  
13.7.4 Tempo logaritmico  
13.8 Ordinamento e ricerca nella libreria Java  
13.8.1 Ordinamento 
13.8.2 Ricerca binaria 
13.8.3 Confronto di oggetti 
Riepilogo degli obiettivi di apprendimento  
Elementi di libreria presentati in questo capitolo  
Esercizi di riepilogo e approfondimento  
Esercizi di programmazione  
Capitolo 14 - Java Collections Framework  
Obiettivi del capitolo 
14.1 Una panoramica del Collections Framework 
14.2 Liste concatenate 
14.2.1 La struttura delle liste concatenate  
14.2.2 La classe LinkedList del Java Collections Framework
14.2.3 Iteratori per liste 
14.3 Insiemi  
14.3.1 Scegliere un’implementazione di insieme 
14.3.2 Lavorare con insiemi  
14.4 Mappe  
14.5 Pile, code e code prioritarie  
14.5.1 Pile 
14.5.2 Code 
14.5.3 Code prioritarie  
14.6 Applicazioni di pile e code  
14.6.1 Accoppiamento delle parentesi 
14.6.2 Valutazione di espressioni RPN 
14.6.3 Valutazione di espressioni algebriche  
14.6.4 Backtracking 
Riepilogo degli obiettivi di apprendimento 
Elementi di libreria presentati in questo capitolo 
Esercizi di riepilogo e approfondimento 
Esercizi di programmazione  
Appendice A - Il sottoinsieme Basic Latin di Unicode  
Appendice B - Linguaggio Java: operatori 
Appendice C - Linguaggio Java: parole riservate  
Appendice D - Sistemi di numerazione  
Glossario  
Indice analitico 


Scrivi la tua recensione

Solo gli utenti registrati possono scrivere recensioni. Accedi oppure Registrati

Libri consigliati

Back to top