# Pascal/Programmazione ad oggetti

Pascal
Copertina Tutti i moduli · Sviluppo
    Copertina
* IntroduzionePascal/Introduzione
* AlgoritmiPascal/Algoritmi
* VariabiliPascal/Variabili
* Input e outputPascal/Input e Output
* Tipi di dati e operatoriPascal/Tipi di dati
* Gestione avanzata dei datiPascal/Gestione avanzata dei dati
* CommentiPascal/Commenti
* Librerie e funzioni predefinitePascal/Librerie e funzioni predefinite
* Istruzioni di controlloPascal/Istruzioni di controllo
* ArrayPascal/Array
* Metodo top-down, procedure e funzioniPascal/Metodo top-down, procedure e funzioni
* Programmazione ad oggettiPascal/Programmazione ad oggetti
** Concetti fondamentaliPascal/Concetti fondamentali
** I modificatori public, private e protectedPascal/I modificatori public, private e protected
** Costruttori e distruttoriPascal/Costruttori e distruttori
** Override, metodi virtuali e classi astrattePascal/Override, metodi virtuali e classi astratte
** Il Turbo VisionPascal/Il Turbo Vision
* StrumentiPascal/Strumenti
* EserciziPascal/Esercizi
Modifica il sommario
La programmazione orientata agli oggetti (OOP) è un paradigma di programmazione che consente di gestire applicazioni complesse, come applicazioni molto grandi o con interfacce grafiche elaborate, con semplicità.
Quest'obbiettivo si raggiunge raggruppando in classi le strutture dati e le procedure che le elaborano ottenendo appunto degli oggetti caratterizzati da proprietà (i dati) e metodi (le procedure e le funzioni).
Il vecchio paradigma di programmazione, quella strutturale (o metodo top-down) poco si prestava all'elaborazione di programmi complessi. Le nuove architetture hardware erano però in grado di gestire programmi più potenti, che rendevano obsoleta di fatto la programmazione strutturale. Fu così che nacque la programmazione agli oggetti: non è più il programma in sé a gestire l'intero flusso di istruzioni, ma sono gli oggetti che interagiscono fra di loro intervenendo opportunamente sull'andamento del programma, specialmente se si utilizza il concetto di "evento" di cui ne parleremo quando avremo a che fare con Turbo Vision.
La programmazione orientata agli oggetti è pertanto un'estensione dell'originale linguaggio Pascal, ed è sopportata solo dai moderni compilatori come Free Pascal o Delphi, che consentono all'utente di creare applicazioni con classi e oggetti.
La prima versione di Turbo Pascal con l'OOP è stata il Turbo Pascal 5.5, e la versione 6.0 includeva il framework Turbo Vision, ovvero una vasta libreria che consente la creazione di una TUI (Text User Interface) adeguata. La IDE del Free Pascal è stat sviluppata con una libreria analoga, ma open source: la Free Vision.
Anche se il Pascal supporta ormai da tempo la programmazione orientata agli oggetti e la programmazione avanzata in generale, la mancanza di compilatori versatili che funzionino in ambiente Windows ha relegato il Pascal ad un ambito esclusivamente didattico.
Di seguito un semplice esempio di programma che implementa la programmazione a oggetti.

## Esempio

Il programma memorizza un numero (1) nella variabile privata One, lo incrementa e lo stampa.
Il programma mostrato è banale e non ha alcuno scopo se non quello di mostrare un esempio di sintassi OOP. Esempi molto più complessi si trovano sul sito del progetto FreePascal e di Lazarus, un RAD per lo sviluppo di applicazioni OOP in FreePascal.