Una classe implementa un tipo di dato astratto
Una classe ha un nome, e contiene attributi e metodi
Un oggetto è una istanza di una classe (a volte più di una)
Un oggetto occupa memoria, la sua classe definisce come sono organizzati i dati in questa memoria
Ogni oggetto possiede tutti gli attributi definiti nella classe, ed essi hanno un valore, che può mutare durante l’esecuzione del programma come quello di qualsiasi variabile
Se il paradigma della OOP è applicato in modo rigido, gli attributi di un oggetto vengono manipolati solo da metodi invocati su quello stesso oggetto
Sintatticamente, i metodi di una classe vengono invocati su un particolare oggetto, e ricevono come parametro implicito l’oggetto su cui sono stati invocati
Questo parametro normalmente piò essere referenziato esplicitamente
Alcuni linguaggi forniscono un supporto per l’inizializzazione automatica di un oggetto, con uno speciale metodo detto costruttore
Allo stesso modo, la fine della vita di un oggetto è gestita con un metodo detto distruttore
Un oggetto è una istanza (”esemplare”) di una classe, che viene creato (”istanziato”) dinamicamente
Due esemplari della stessa classe sono distinguibili soltanto per il loro stato (il valore dei loro campi), mentre il comportamento è sempre identico
Modellano le entità del dominio di applicazione (proprietà ed interrelazioni)
Versione informatica degli oggetti “reali”, dotati di una loro propria “individualità”
Capaci di interagire per scambio di messaggi
Caratterizzati da proprietà: