Non perderti novità e offerte esclusive! Iscriviti alla newsletter per aggiornamenti su promozioni, novità editoriali e corsi di formazione

Concetti di informatica e fondamenti di Java

 
di Cay Horstmann
ISBN 8891639431
Data pubblicazione Dicembre 2019
scopri di più
Cartaceo
Special Price 51,30 €
SCONTO 5%
5%
Anzichè 54,00 €
Disponibile
  • Spedizione in 48h
  • Paga alla consegna senza costi aggiuntivi
Sei un docente?

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.

settima edizione per Java 8, 9, 10 e 11

Pagine 804
Data pubblicazione Dicembre 2019
Autori Cay Horstmann
ISBN 8891639431
ean 9788891639431
Tipologia prodotto Cartaceo
Collana Apogeo Education
Editore Maggioli Editore
Dimensione 19x23,5
Cay Horstmann

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
Stai recensendo:Concetti di informatica e fondamenti di Java

Consegna in 48h
in tutta Italia

Leggi le condizioni di spedizione

Resi facili
entro 10 gg

Leggi la politica sui resi

Pagamenti sicuri
e verificati

Leggi i metodi d'acquisto