Giuseppe Callegarin Java, Oggetti e Strutture Dati Cedam INDICE
|
|
|
- Biaggio Calo
- 9 anni fa
- Просмотров:
Транскрипт
1 Giuseppe Callegarin Java, Oggetti e Strutture Dati Cedam INDICE CAP. 1 Macchine, linguaggi e comunicazioni Dai grandi elaboratori all era dei dispositivi programmabili e comunicanti Ostacoli alla comunicazione e possibili soluzioni...3 Piattaforme e portabilità...3 Interfacciamento con l'utente...4 La torre di Babele dei linguaggi di programmazione...5 Distribuzione e protocolli...6 Sicurezza...7 Il concetto di interoperabilità...7 La comunicazione di documenti e XML...8 I Servizi Web Modellare con UML Macchine e linguaggi Macchine astratte e concrete Interpretazione Compilazione Macchine virtuali Linguaggi intermedi (bytecode) La programmazione ad oggetti Origini e motivazioni della OOP Terminologia essenziale sugli oggetti Creazione ed uso di oggetti Classi clienti e messaggi Messaggi e diagrammi di sequenza Metodi che modificano e metodi che osservano Information hiding e astrazione Ereditarietà Overriding (ridefinizione) di metodi Ereditarietà multipla Polimorfismo Classi e metodi astratti Interfacce ESERCIZI Il fenomeno Java La genesi di Java Caratteristiche di Java... 36
2 viii Indice Edizioni e versioni di Java Primi esempi di Java Strutture dati, algoritmi e oggetti COMPLEMENTI al Cap C1.1 Sviluppare ed eseguire programmi Java C1.2 La proposta alternativa della Microsoft (dot net) TEST DI AUTOVERIFICA CAP. 2 Introduzione a Java Preliminari, tipi, espressioni e riferimenti "Hello" e commenti Blocchi e istruzioni Regola del punto e virgola Scrittura a video ed espressioni Letterali e UNICODE Lettura dei parametri della linea comando Prime eccezioni Regole per gli identificatori Variabili e assegnamento Durata e campo d'azione delle variabili locali Costanti simboliche Tipi riferimento e variabili riferimento Riferimento null "Hello" ad oggetti Effetti collaterali su oggetti Uso e significato della variabile this Classificazione dei tipi di Java Comandi ed espressioni Tipi primitivi e classe Math I tipi integrali I tipi in virgola mobile Sequenze di escape per i caratteri Operatori e precedenze Controllo forte dei tipi Casting e promozioni (conversioni di tipo) Conversioni da stringa a numero e viceversa Problemi risolti ESERCIZI Metodi e attributi statici Metodi statici Attributi statici e inizializzatore statico ESERCIZI Rudimenti di input/output Standard input e output Lettura da tastiera e importazione di classi ESERCIZI Java funzionale Definire funzioni statiche Firma di un metodo... 87
3 Indice ix Funzioni ricorsive ed espressioni condizionali Altri esempi di funzioni ricorsive ESERCIZI Costrutti di controllo Costrutto if Costrutto switch Costrutto while Obblighi di inizializzazione Costrutto for Costrutto do-while Istruzioni break e continue nei cicli ESERCIZI Gli array Array monodimensionali e valori di default Matrici ed array multidimensionali Soluzione di problemi sugli array con uso di funzioni ESERCIZI Procedure e passaggio di parametri Procedure (funzioni void ) Ordinamento di un array Passaggio dei parametri Procedure ricorsive ESERCIZI Elaborazione di stringhe Operazioni sulle stringhe Confronto tra stringhe e tra oggetti Elaborazioni efficienti con StringBuffer e StringBuilder (Java 1.5) ESERCIZI Oggetti immutabili Classi BigInteger e BigDecimal Definiamo la classe Razionale ESERCIZI Ritardi, numeri casuali e grafica elementare Generazione di ritardi Generazione di numeri casuali Rudimenti di grafica elementare Caricamento di immagini ESERCIZI Package utente e di piattaforma I package Costruiamo dei package I package di piattaforma ESERCIZI Modificatori e visibilità Elenco dei modificatori Modificatori di accesso Assegnare la visibilità ad ogni entità Classi interne e classi anonime ESERCIZI COMPLEMENTI al Cap
4 x Indice C2.1 Documentazione automatica con javadoc C2.2 Espressioni regolari TEST DI AUTOVERIFICA CAP. 3 Approfondimenti su Java Classi, tipi e involucri (box) Differenza tra classe e tipo Sottotipi e supertipi Il principio di sostituibilità Regole sui tipi Upcasting/Downcasting Operatore instanceof Le classi involucro (wrapper) Boxing/Unboxing Boxing/Unboxing impliciti (Java 1.5) Tipi con ordinamento: l'interfaccia Comparable ESERCIZI Eccezioni e loro trattamento Cosa sono e come nascono le eccezioni Leggere la "stack trace" Trattare le eccezioni: un primo esperimento Catena di rifiuti e conseguenze Costruire la robustezza Rifiuti e obblighi di trattamento (eccezioni controllate) Istruzione try-catch Classe Throwable e classificazione delle eccezioni Istruzione throw Un esempio riassuntivo ESERCIZI Asserzioni (Java 1.4) Cos'è un'asserzione? Simulare le asserzioni con le eccezioni Verificare da programma l'abilitazione delle asserzioni ESERCIZI Introduzione ai thread Il concetto di thread La creazione di thread Sincronizzazione dei thread - Atomicità Sincronizzazione su condizioni: wait e notify Evoluzione degli stati di un thread Stallo e starvation Esercizi Array dinamici in Java: Vector ed ArrayList La classe Vector La classe ArrayList La genericità (Java 1.5) Il problema La soluzione del problema: le classi generiche Costruiamo una nostra classe generica
5 Indice xi Limitazioni sull'uso Il tipo grezzo di una classe generica Uso di più parametri ed espressioni di tipo "tipo" Genericità vincolata Esercizi Gli stream e la gestione dei file Il concetto di flusso Concatenazione di flussi Operazioni generali sui file Creazione, scrittura e lettura di file testo Flussi di valori e di oggetti La gestione di file e cartelle ESERCIZI Uguaglianza e copia degli oggetti Ridefinire equals Ridefinire e usare clone() per effettuare le copie Copie superficiali e copie profonde ESERCIZI Eventi e interfacce utente grafiche La programmazione guidata dagli eventi Gestione degli eventi con il modello di delegazione Un primo esempio di ascolto Tipi di ascoltatori Gli adattatori Componenti e contenitori Componenti di testo Gestione del Layout Disegnare con il mouse Esercizi Applet Cos'è una applet? Applet e sicurezza Un'applet bottone e la console Java La lettura di parametri dalla pagina HTML Aprire pagine web da un'applet Animazione con un'applet Visualizzazione di immagini ESERCIZI COMPLEMENTI al Cap C3.1 Garbage collection e finalize C3.2 Un esempio con le Swing TEST DI AUTOVERIFICA CAP.4 La progettazione ad oggetti Oggetti, classi e relazioni tra classi Oggetti, astrazione e responsabilità Stato di un oggetto - information hiding - metodi e attributi Messaggi e classificazione dei metodi Il concetto di classe Da UML a Java
6 xii Indice Creare gli oggetti: l'uso dei costruttori Uso delle classi La parola this e la memorizzazione degli oggetti La relazione di dipendenza tra classi Evitare l'uso di oggetti globali (static) La relazione di composizione La relazione di aggregazione La relazione di ereditarietà Polimorfismo e collegamento ritardato La visibilità non può diminuire nelle sottoclassi Overloading e overriding Metodi astratti e classi astratte Interfacce e relazione di implementazione La catena dei costruttori in Java Il costruttore di default e i codici hash Gli oggetti come stringhe: ridefinire tostring ESERCIZI Progettiamo una piccola Virtual Machine Le specifiche del problema Analisi del problema Una proposta di soluzione Il codice Java Il progetto per contratto Specificare precondizioni Specificare postcondizioni Il contratto Programmazione per contratto in Java ESERCIZI Introduzione ai design pattern COMPLEMENTI al Cap C4.1 Progettare interfacce grafiche per gli oggetti C4.2 Le classi come oggetti: una prova di riflessione TEST DI AUTOVERIFICA CAP. 5 Introduzione alle strutture dati Liste concatenate Liste astratte e concrete Nodi concatenabili Costruzione di liste concatenate Visita iterativa di una lista concatenata Visita ricorsiva di una lista concatenata Inserimento in "mezzo" o in coda Inserimento di un elemento in testa Cancellazione di un elemento Nodi sentinella Liste circolari Liste doppiamente concatenate Problemi risolti sulle liste concatenate ESERCIZI Pile
7 Indice xiii Il concetto di pila Implementazione a lista Implementazione con un vettore Un'applicazione delle pile: la valutazione di espressioni RPN ESERCIZI Iteratori Analisi del problema Il concetto La soluzione del problema Attraversamenti multipli Problemi degli iteratori Gli iteratori della libreria standard di Java Gli iteratori impliciti e il " foreach" (Java 1.5) ESERCIZI Code Il concetto di coda Impleme7ntazione con le liste concatenate Implementazione per code limitate Code doppie e classe LinkedList Code con priorità Esercizi Alberi binari Definizione di albero binario Operazioni sugli alberi binari Visite degli alberi binari Gli alberi binari come oggetti Problemi risolti sugli alberi binari Visite iterative e iteratore per gli alberi binari ESERCIZI Alberi binari di ricerca Definizione di albero binario di ricerca Ricerca negli ABR Inserimenti e cancellazioni in un ABR Alberi binari di ricerca come oggetti Un iteratore per gli alberi binari di ricerca ESERCIZI Alberi Definizione di albero Visite di un albero La rappresentazione in memoria di alberi e foreste Rappresentare gli alberi con gli alberi binari: la rappresentazione naturale Gli alberi come oggetti Iteratori per alberi ESERCIZI Grafi Definizioni di grafo e terminologia Rappresentazioni dei grafi Visite (ricerche) in profondità e in larghezza sui grafi I grafi come oggetti Cammini minimi da un nodo (algoritmo di Dijkstra) Esercizi
8 xiv Indice 5.9 Strutture basate sulla trasformazione hash Dizionari o mappe La trasformazione hash Collisioni Risoluzione delle collisioni Prestazioni e limiti delle tabelle hash Tabelle e insiemi hash di Java ESERCIZI COMPLEMENTI al Cap C5.1 Notazione O-grande e complessità computazionale C5.2 Introduzione al Collections Framework di Java TEST DI AUTOVERIFICA Idee per progetti Appendice A.1. Installazione dei package di javaosd Appendice A.2 ndice delle tabelle su Java Bibliografia essenziale Sitografia essenziale Indice analitico
Prefazione. Capitolo 1 Sistemi di elaborazione 1
Prefazione XI Capitolo 1 Sistemi di elaborazione 1 1.1 Algoritmo 1 1.2 Esecuzione 3 1.3 Memoria 4 1.4 Calcolo meccanico 5 1.5 Capacità di calcolo 7 1.6 Computer 8 Domande di verifica 11 Esercizi 11 Capitolo
ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016
ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016 Classe: 4^A inf Prof.ssa Lami Carla Prof. Simone Calugi Programma di INFORMATICA GENERALE, APPLICAZIONI
Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX
Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di
Indice. Prefazione. 3 Oggetti e Java 53
Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware
Indice generale Introduzione...vii Parte I Concetti e costrutti fondamentali... 1 Capitolo 1 Introduzione al linguaggio... 3
Introduzione...vii Organizzazione del libro... viii Struttura del libro e convenzioni... ix Codice sorgente e progetti... x Compilare ed eseguire direttamente i listati e gli snippet di codice... x Compilare
Sommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C
Sommario Introduzione... xv Organizzazione del volume... xv Argomenti...xvi Domande...xvi Verifiche...xvi Domande e risposte...xvi Esercizi...xvi Non è richiesta alcuna precedente esperienza di programmazione...
Corso Programmazione Java Standard
Corso Programmazione Java Standard Codice: ITJS0113 Durata: 40 ore Descrizione corso Questo corso fornisce una panoramica sulle varie sfaccettature della sintassi del linguaggio Java, integrata con mirate
La programmazione ad oggetti: chiamate di metodi. Overloading. This
ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMA SVOLTO A.S. 2015/2016 Classe IV C Informatica Proff. Fabio Ciao / Simone Calugi Libro di testo: Cloud B P.
Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...
Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...
Algoritmi e Strutture Dati
Introduzione al corso di Algoritmi e Strutture Dati Luigi Pontieri Il nome del corso: Algoritmi e Strutture Dati Algoritmo: metodo per la risoluzione di problemi di elaborazione di informazioni, espresso
Corso di Fondamenti di Informatica e Laboratorio
Corso di Fondamenti di Informatica e Laboratorio Corsi di Laurea Ingegneria Informatica (O-Z) Corsi di Laurea Ingegneria delle Telecomunicazioni - (A-Z) (ordinamento 03) A.A. 2009-2010 Prof. Giuseppe Mangioni
Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura
Java il Corso Fondamentale
Java il Corso Fondamentale Imparare a Programmare APP per Android, applicativi per Server e Desktop, applet e molto altro. IlTuoCorso - Ermes srl Via E.De Amicis 57 20123 Milano Il corso Ciao! Se desideri
Le basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
Indice Introduzione I fondamenti di C#
Indice Introduzione XV Capitolo 1 I fondamenti di C# 1 1.1 L albero genealogico di C# 2 C: l inizio dell era moderna della programmazione 2 La creazione di OOP e C++ 3 La nascita di Internet e Java 4 La
Docenti Prof.ssa Biagini Barbara Prof. Sollitto Carlo INDIRIZZO DI STUDI SISTEMI INFORMATIVI AZIENDALI
IIS ARGENTIA GORGONZOLA Programma svolto a.s.2016/17 Materia INFORMATICA Classe IV BSIA Docenti Prof.ssa Biagini Barbara Prof. Sollitto Carlo INDIRIZZO DI STUDI SISTEMI INFORMATIVI AZIENDALI Prerequisiti:
CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION
CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION 0 DURATA 200 ore CONTENUTI Oracle PL/SQL Introduzione al PL/SQL Cenni su SQL con utilizzo di SQL*PLUS Configurazione ambiente Developer DB Classi,
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati A.A. 15/16 Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro Contatti Studio: stanza 513, V piano DIB Telefono: 080 544 2297 email: [email protected]
Indice. Introduzione PARTE PRIMA LE BASI DEL C++: IL LINGUAGGIO C 1
Indice Introduzione XV PARTE PRIMA LE BASI DEL C++: IL LINGUAGGIO C 1 Capitolo 1 Una panoramica sul linguaggio C 3 1.1 Le origini e la storia del linguaggio C 3 1.2 Il C è un linguaggio di medio livello
Fondamenti di Programmazione
Fondamenti di Programmazione (con linguaggio di riferimento C++) Gianfranco Rossi Università di Parma Dip. di Matematica e Informatica 43100 Parma (Italy) [email protected] Indice 1 Introduzione
PROGRAMMAZIONE INFORMATICA SECONDO BIENNIO. Liceo Scientifico opzione Scienze Applicate
PROGRAMMAZIONE INFORMATICA SECONDO BIENNIO Liceo Scientifico opzione Scienze Applicate Anno scolastico 2017-2018 Programmazione di Informatica pag. 2 / 7 INFORMATICA - SECONDO BIENNIO OBIETTIVI SPECIFICI
Programmare in Python
Programmare in Python Docente: Maurizio De Pra Lingua Italiano Descrizione del corso e obiettivi Il corso mira a far conoscere i fondamenti della programmazione in Python, i cui ambiti di utilizzo sono
PIANO DI LAVORO. Programmazione Didattica per Competenze. Indirizzo Informatica e Telecomunicazioni. Articolazione Informatica DOCENTE:
PIANO DI LAVORO Programmazione Didattica per Competenze Indirizzo Informatica e Telecomunicazioni Articolazione Informatica DOCENTE: ITP: MATERIA: CLASSE: ORE SETTINALI: CANTARELLA ALFREDO NATALE LUIGI
Strutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
Corso di Laurea in Ingegneria Informatica (L8) Anno Accademico 2015/2016 FONDAMENTI DI INFORMATICA
Dipartimento di Ingegneria Elettrica, Elettronica e Informatica Corso di Laurea in Ingegneria Informatica (L8) Anno Accademico 2015/2016 FONDAMENTI DI INFORMATICA Docente titolare dell insegnamento: Proff.
Python Start. Docente: M. Chiara Debernardi. Lingua del corso. Descrizione del corso e obiettivi. Destinatari. Prerequisiti.
Python Start Docente: M. Chiara Debernardi Lingua del corso Italiano Descrizione del corso e obiettivi Il corso mira a far conoscere i fondamenti di Python, linguaggio di programmazione sempre più diffuso
Linee di programmazione
Ministero dell Istruzione, dell Università e della Ricerca Ufficio Scolastico regionale per il Lazio Istituto Tecnico Industriale A. Pacinotti ISTITUTO TECNICO TECNOLOGICO - LICEO SCIENTIFICO DELLE SCIENZE
FONDAMENTI DI INFORMATICA - canale 1
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria informatica Anno accademico 2016/2017-1 anno FONDAMENTI DI INFORMATICA - canale 1 ING-INF/05-9 CFU - Insegnamento
Docente/i Pierangela Guzzetti, Jessica Olgiati A.S
Tel. 0331 635718 fax 0331 679586 [email protected] https://isisfacchinetti.gov.it ISIS C. Facchinetti Sede: via Azimonti, 5-21053 Castellanza PROGRAMMA SVOLTO E RELAZIONE FINALE DEL DOCENTE Rev.
A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas
Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),
Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile.
Liceo Scientifico Vinci PROGRAMMA FINALE A.S. 2016/2017 Materia: INFORMATICA Classe 1Q Prof. Dardanelli Francesco PROGRAMMA SVOLTO NELL ANNO SCOLASTICO IL COMPUTER. Hardware e software. Il computer. Il
ITI M. FARADAY. Programmazione a. s
ITI M. FARADAY Programmazione a. s. 2018-2019 Disciplina: INFORMATICA Indirizzo: INFORMATICA E TELECOMUNICAZIONI Classi: Terza A Terza B Ore settimanali previste: 6 (3 ora Teoria - 3 ore Laboratorio) Docenti:
3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni
IIndice Capitolo 1 Da dove partiamo: pagine web statiche 1 1.1 Principi di base.............................. 1 1.1.1 Il paradigma client-server.................... 1 1.1.2 Ipertesto, multimedia, ipermedia................
I Tipi di Dato Astratto
I Tipi di Dato Astratto Sommario Cosa sono le Strutture Dati Astratte? Le strutture dati Le operazioni Come scegliere fra varie implementazioni? Quale è la questione? Come organizzare (strutturare) i dati
