Descrizione

Le tecniche di programmazione basate su oggetti e classi di oggetti rappresentano la soluzione più moderna e funzionale per affrontare lo sviluppo di programmi con caratteristiche di comprensibilità, manutenibilità e riutilizzo. Inoltre con questo paradigma non è più il progettista a doversi adattare alle regole di programmazione dettate dall’elaboratore, come accadeva al massimo grado nello sviluppo di programmi in assembly agli albori dell’informatica, ma è piuttosto la macchina che si avvicina all’uomo, mediante linguaggi in grado di modellizzare le entità del mondo reale, costituite da oggetti dotati di specifici attributi e capaci di interagire fra loro attraverso operazioni ben definite (metodi). Fra i diversi linguaggi orientati agli oggetti sono particolarmente affermati il C++ e Java. Entrambi definiscono relazioni di propagazione delle caratteristiche e dei comportamenti degli oggetti secondo regole di ereditarietà. Descrivono le diverse manifestazioni che un oggetto può avere, secondo regole di polimorfismo. Permettono di ridefinire sugli oggetti il significato degli operatori più comuni, attraverso soluzioni di overloading. La libreria standard del C++ (STL) definisce una collezione di classi e di funzioni di utilizzo generale e introduce inoltre delle classi, chiamate contenitori, che costituiscono collezioni di oggetti per i quali sono predefiniti i metodi di accesso. Gli oggetti sono generici, essendo implementati come template di classi. Analogamente anche in Java esiste un Java Collections Framework che definisce una serie di contenitori generici, progettati intorno a una rigida gerarchia di interfacce. Sommario: 1. PROGRAMMAZIONE A OGGETTI – 1.1. Classi e oggetti nel linguaggio C++ – 1.2. Classi e oggetti nel linguaggio Java ● 2. EREDITARIETÀ – 2.1. Ereditarietà nel linguaggio C++ – 2.2. Ereditarietà nel linguaggio Java ● 3. POLIMORFISMO – 3.1. Polimorfismo nel linguaggio C++ – 3.2. Polimorfismo nel linguaggio Java ● 4. OVERLOADING – 4.1. Overloading nel linguaggio C++ – 4.2. Overloading nel linguaggio Java ● 5. LINGUAGGIO C++: ESEMPI D’USO – 5.1. Esempi di classi – 5.2. Gerarchie di ereditarietà – 5.3. Polimorfismo – 5.4. Gestione delle eccezioni ● 6. LINGUAGGIO C++: TEMPLATE – 6.1. Template delle classi – 6.2. Template delle funzioni – 7. LIBRERIA STANDARD C++ ● 7.1. La classe string – 7.2. Esempi relativi a stringhe – 7.3. Libreria standard iostream – 7.4. Esempi di I/O – 8. STANDARD TEMPLATE LIBRARY ● 8.1. Contenitori – 8.2. Iteratori – 8.3. Algoritmi – 8.4. Esempi relativi ai contenitori – 9. LINGUAGGIO JAVA: ESEMPI D’USO ● 9.1. Gerarchie di ereditarietà – 9.2. Linguaggio Java: classi generiche – 9.3. Gestione delle eccezioni – 9.4. Classi relative alle stringhe – 9.5. La gestione dell’I/O – 10. CONTENITORI DEL LINGUAGGIO JAVA ● 10.1. Interfacce – 10.2. Implementazioni – 10.3. Algoritmi – 10.4. Esempi di collezioni ● 11. JAVA SWING – 11.1. Java Swing: un esempio d’uso
________