1. Cosa identifica la OOP ?
L'acronimo OOP in informatica sta per Object Oriented Programming (Programmazione Orientata agli Oggetti) e vuole denotare l'insieme delle caratteristiche a fondamento del paradigma della programmazione ad oggetti. Storicamente, le prime idee fondanti di questo paradigma sono sorte con il Simula '67, un linguaggio di simulazione discreta di scuola scandinava, e sono state poi riscoperte negli USA negli anni '70-'80 con il linguaggio Smalltalk. Buona parte del gergo della OOP si deve a questi due linguaggi.
Dalla met degli anni '80 esiste un generale accordo sulle caratteristiche che devono essere presenti in un linguaggio per poterlo classificare come OOPL, cio per affermare che mette a disposizione il paradigma della OOP:
1. insieme di operazioni astratte, associate ad un tipo
2. stato locale
3. ereditarietà
La prima caratteristica, spesso associata all'acronimo ADT (Abstract Data Type), stabilisce che l'unico modo per agire sugli oggetti di un certo tipo quello di invocare delle operazioni (nel gergo OOP chiamate metodi) prestabilite e note agli utenti in modo astratto, ciò indipendente dalla rappresentazione prescelta per la loro concreta implementazione (realizzazione).
La seconda caratteristica stabilisce che ogni oggetto ha un proprio stato locale che può cambiare per effetto dell'esecuzione di alcuni metodi. In pratica il valore dello stato locale ad un certo istante stabilito dal contenuto di un insieme di celle di memoria associate all'oggetto, dette campi o attributi dell'oggetto.
L'ereditarietà stabilisce infine che il linguaggio deve prevedere un meccanismo per stabilire delle relazioni IS-A ("-un") tra classi di oggetti. Questo meccanismo consente in definitiva il riuso e il polimorfismo, due dei principali fattori alla base del successo della OOP.