SuperNewbie ha scritto:
si usa l'incapsulamento cioè far uso di oggetti ossia entità che hanno al loro interno sia variabili che metodi(funzioni).
Quando si parla di incapsulamento (in OOP) si possono intendere due cose:
1) il fatto di poter avere una entità (oggetto) che incapsula al suo interno dati
E funzionalità (è quanto hai appena detto)
2) il fatto di poter "nascondere" o comunque limitare l'accesso ai dati contenuti nell'oggetto
Generalmente si tende a pensare al secondo da solo oppure al secondo in combinazione con il primo. Dipende molto dal contesto/linguaggio.
SuperNewbie ha scritto:
Ma non è possibile fare la stessa cosa con le strutture dati astratte del C?
No, non in senso completo/pulito come i linguaggi che sono veramente ad oggetti. Si può tentare di sfruttare delle struct che contengono dati
E puntatori a funzione ma a quest'ultime dovresti comunque passare l'indirizzo della struttura (concettualmente equivalente al "this" di Java). Non è comunque proprio un incapsulamento .....
SuperNewbie ha scritto:
i concetti di ereditarietà e polimorfismo ed è qui che mi sembrano facciano davvero la differenza
tra programmare ad oggetti ed la programmazione imperativa.
La programmazione "imperativa" non la puoi confrontare/contrapporre alla programmazione ad oggetti, sono due concetti diversi. La programmazione "imperativa" la puoi fare in qualunque linguaggio che ti permette di scrivere istruzioni/comandi/direttive (termine a seconda del linguaggio) per indicare esattamente COME vuoi fare le cose e con QUALE sequenza.
La programmazione imperativa si contrappone alla programmazione "dichiarativa" (SQL è un linguaggio dichiarativo).
SuperNewbie ha scritto:
Ancora un dubbio:creare (definire) una classe e successivamente istanziare un oggetto di quella determinata classe vuol dire creare uno specifico 'tipo di dato',cioè il tipo di dato corrispondente a quella classe,giusto?
Un nuovo tipo di dato lo ottieni già solo con il fatto di aver scritto e definito una classe, che rappresenta e descrive la "forma" che tutti gli oggetti di
quella classe avranno.