Si va alle basi della programmazione ad oggetti. La tua domanda richiederebbe una lunga trattazione che non ho il tempo di fare, ma cerco di scrivere il possibile.Originariamente inviato da indre
inoltre cosa si intende terra-terra con il termine "istanza" e "istanziare" ??
Sostanzialmente, la programmazione ad oggetti si basa sulla soluzione (a livello informatico) di un problema analizzando gli elementi che interagiscono nel sistema reale (ad esempio, considera un'automobile), ciascuno dei quali svolge delle funzioni (metodi) e possiede della caratteristiche (attributi).
Prendi un altro esempio, considera un'interfaccia utente (su Linux, se preferisci): nel sistema di realizzazione di un'interfaccia vedrai operare diversi elementi tra di loro: pulsanti, caselle di testo, caselle di riepilogo, menu, ecc.
Creare un'applicazione visuale programmando ad oggetti, al contrario dell'approccio procedurale, non vede la creazione degli elementi visibili su schermo come una serie di chiamate a routine che vengono raggruppate in funzioni per essere ripetute il meno possibile, quanto più la cooperazione tra di loro di diversi elementi che fanno parte del sistema, come la finestra stessa, il menu che contiene, i pulsanti disposti al suo interno e così via.
Ciascun elemento è un oggetto, cioè un componente che svolge diverse operazioni (metodi) e ha delle caratteristiche (attributi): ad esempio, una casella di testo è in grado di copiare il contenuto negli Appunti (metodo), spostarsi sullo schermo (altro metodo), cancellare il proprio contenuto (di nuovo), mentre ha anche delle caratteristiche, ad esempio il carattere con cui viene visualizzato il testo (attributo), il testo stesso (altro attributo), il colore di sfondo (idem) e così via.
Queste caratteristiche vengono raggruppate all'interno di una classe: la classe, quindi, funge da contenitore per le caratteristiche e le azioni che possono essere compiute da un elemento che fa parte del sistema reale in esame che si vuole programmare a livello informatico.
La classe però è solo un modello: nell'esempio sopra, la classe è solamente in grado di dire cosa è in grado di fare una casella di testo e di quali caratteristiche è dotata, ma è necessario creare un'istanza per poter utilizzare la classe.
Creare l'istanza di una classe è come passare dal progetto di un'automobile all'automobile vera e propria. Se all'interno di una finestra a video crei 10 istanze di caselle di testo, tutte queste caselle di testo saranno dotate delle caratteristiche e dei comportamenti dettate dalla classe che costituisce il modello, anche se poi ciascuna applicherà tali comportamenti a se stessa spostandosi in punti diversi dello schermo, visualizzando testi diversi, ecc.
Spero di averti chiarito maggiormente le idee a riguardo.