Questo volume nasce dall'esigenza di fornire una casistica di problemi adatti ad un corso di Laboratorio da affiancare ad un corso istituzionale di Programmazione Orientata agli Oggetti. Non si sofferma quindi sugli aspetti concettuali della metodologia ad oggetti, che si assumono analizzati nel parallelo corso di riferimento, ma ne richiama i principi e le tecniche di sviluppo. A tale proposito ogni capitolo è suddiviso in tre parti: (a) una sezione iniziale, in cui vengono richiamati gli aspetti salienti dell'argomento trattato e gli strumenti che vengono messi a disposizione dalla metodologia ad oggetti e che sono necessari alla realizzazione delle soluzioni; (b) una seconda sezione dedicata alla presentazione di problemi che coinvolgono gli aspetti progettuali di interesse del capitolo, proposti per livelli crescenti di complessità; (c) una terza sezione, in cui vengono sviluppate possibili realizzazioni implementative per i problemi proposti. Non tutti i problemi, peraltro, sono corredati da soluzione: parte di essi sono lasciati alla progettazione individuale, in quanto suscettibili di realizzazioni similari a soluzioni incontrate in casi precedenti, in modo da divenire uno strumento di verifica delle tecniche acquisite. Il linguaggio di riferimento utilizzato è Java, la cui rapidissima diffusione ne ha comportato un uso intensivo, e talora forse eccessivo, nei corsi di programmazione/progettazione tenuti nei diversi indirizzi a carattere tecnico-scientifico a livello universitario: corsi di Programmazione in senso stretto, corsi di Programmazione Orientata agli Oggetti, corsi di Progettazione ad Oggetti. La struttura d'insieme del testo è organizzata come indicato nel seguito. I primi due capitoli riguardano gli aspetti basilari della Programmazione ad Oggetti: in particolare nel capitolo 1 sono richiamati i principi ed i componenti base di un Linguaggio ad Oggetti (classi, oggetti, metodi, messaggi; incapsulamento e occultamento dell'informazione e dell'implementazione; livelli di protezione per attributi e metodi; costruttori e metodi; sovraccarico dei metodi e dei costruttori); il capitolo 2 è invece incentrato sulle problematiche legate all'ereditarietà e al polimorfismo (definizione e proprietà dell'ereditarietà; classi astratte; polimorfismo e late binding; classi interne, locali e anonime). Il capitolo 3 introduce all'uso delle interfacce grafiche (GUI) e delle loro componenti principali (frame, pannelli, controlli; ascoltatori e adattatori) oltre a trattare i principali aspetti connessi con l'ereditarietà e il polimorfismo quando incontrati in applicazioni con riscontro grafico. Il successivo capitolo 4 è incentrato sull'uso delle strutture dati e delle relative classi di realizzazione (array e strutture dati di tipo List, Set, Map; interfacce Comparable e Comparator; classi Arrays e Collections) oltre che delle interfacce Iterator e ListIterator da sfruttare nella realizzazione di operatori per la scansione delle componenti interne di una struttura dati. A seguire, nel capitolo 5 sono rivisitati alcuni Design Pattern di particolare interesse e d'uso più consueto, selezionati tra i pattern strutturali, quelli creazionali e quelli comportamentali. Il capitolo 6 è invece legato alla creazione dei thread (classe Thread e interfaccia Runnable) e al controllo delle loro attività, oltre che alle problematiche connesse con la loro gestione (risorse condivise e sincronizzazione dei thread; competizione e cooperazione di thread; metodi sincronizzati e regioni di sincronizzazione). Il successivo capitolo 7 è invece incentrato sulle diverse tipologie di file e di stream (ad accesso sequenziale e ad accesso diretto) e sul loro impiego, dalla serializzazione degli oggetti e loro registrazione su file, ai file di immagine, alla clonazione per serializzazione. Conclude il volume il capitolo 8, che presenta una miscellanea di applicazioni un po' complesse con cui il lettore può cimentarsi sfruttando in modo globale le diverse tecniche affrontate separatamente nei capitoli precedenti.

Laboratorio di progettazione a oggetti con Java

MILANESE, Vitaliano
2012-01-01

Abstract

Questo volume nasce dall'esigenza di fornire una casistica di problemi adatti ad un corso di Laboratorio da affiancare ad un corso istituzionale di Programmazione Orientata agli Oggetti. Non si sofferma quindi sugli aspetti concettuali della metodologia ad oggetti, che si assumono analizzati nel parallelo corso di riferimento, ma ne richiama i principi e le tecniche di sviluppo. A tale proposito ogni capitolo è suddiviso in tre parti: (a) una sezione iniziale, in cui vengono richiamati gli aspetti salienti dell'argomento trattato e gli strumenti che vengono messi a disposizione dalla metodologia ad oggetti e che sono necessari alla realizzazione delle soluzioni; (b) una seconda sezione dedicata alla presentazione di problemi che coinvolgono gli aspetti progettuali di interesse del capitolo, proposti per livelli crescenti di complessità; (c) una terza sezione, in cui vengono sviluppate possibili realizzazioni implementative per i problemi proposti. Non tutti i problemi, peraltro, sono corredati da soluzione: parte di essi sono lasciati alla progettazione individuale, in quanto suscettibili di realizzazioni similari a soluzioni incontrate in casi precedenti, in modo da divenire uno strumento di verifica delle tecniche acquisite. Il linguaggio di riferimento utilizzato è Java, la cui rapidissima diffusione ne ha comportato un uso intensivo, e talora forse eccessivo, nei corsi di programmazione/progettazione tenuti nei diversi indirizzi a carattere tecnico-scientifico a livello universitario: corsi di Programmazione in senso stretto, corsi di Programmazione Orientata agli Oggetti, corsi di Progettazione ad Oggetti. La struttura d'insieme del testo è organizzata come indicato nel seguito. I primi due capitoli riguardano gli aspetti basilari della Programmazione ad Oggetti: in particolare nel capitolo 1 sono richiamati i principi ed i componenti base di un Linguaggio ad Oggetti (classi, oggetti, metodi, messaggi; incapsulamento e occultamento dell'informazione e dell'implementazione; livelli di protezione per attributi e metodi; costruttori e metodi; sovraccarico dei metodi e dei costruttori); il capitolo 2 è invece incentrato sulle problematiche legate all'ereditarietà e al polimorfismo (definizione e proprietà dell'ereditarietà; classi astratte; polimorfismo e late binding; classi interne, locali e anonime). Il capitolo 3 introduce all'uso delle interfacce grafiche (GUI) e delle loro componenti principali (frame, pannelli, controlli; ascoltatori e adattatori) oltre a trattare i principali aspetti connessi con l'ereditarietà e il polimorfismo quando incontrati in applicazioni con riscontro grafico. Il successivo capitolo 4 è incentrato sull'uso delle strutture dati e delle relative classi di realizzazione (array e strutture dati di tipo List, Set, Map; interfacce Comparable e Comparator; classi Arrays e Collections) oltre che delle interfacce Iterator e ListIterator da sfruttare nella realizzazione di operatori per la scansione delle componenti interne di una struttura dati. A seguire, nel capitolo 5 sono rivisitati alcuni Design Pattern di particolare interesse e d'uso più consueto, selezionati tra i pattern strutturali, quelli creazionali e quelli comportamentali. Il capitolo 6 è invece legato alla creazione dei thread (classe Thread e interfaccia Runnable) e al controllo delle loro attività, oltre che alle problematiche connesse con la loro gestione (risorse condivise e sincronizzazione dei thread; competizione e cooperazione di thread; metodi sincronizzati e regioni di sincronizzazione). Il successivo capitolo 7 è invece incentrato sulle diverse tipologie di file e di stream (ad accesso sequenziale e ad accesso diretto) e sul loro impiego, dalla serializzazione degli oggetti e loro registrazione su file, ai file di immagine, alla clonazione per serializzazione. Conclude il volume il capitolo 8, che presenta una miscellanea di applicazioni un po' complesse con cui il lettore può cimentarsi sfruttando in modo globale le diverse tecniche affrontate separatamente nei capitoli precedenti.
2012
9788862923347
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11390/897941
 Attenzione

Attenzione! I dati visualizzati non sono stati sottoposti a validazione da parte dell'ateneo

Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact