Salve a tutti. Mi piacerebbe sapere come posso creare un software simile a photoshop oppure a quelli della autodesk come autocad o 3D studio max.
Che linguaggio è opportuno nusare? Che software si usa per fare l'interfaccia grafica e aasegnare ad ogni elemento dell'interfaccia una funzione da far svolgere al programma?
Inoltre vorrei sapere una cosa: cosa si intende quandi si parla di programmazione orientata agli oggetti
Nella metodologia della programmazione strutturata il ruolo principale è ricoperto dall'algoritmo, si crea un modello col quale si descrivono le procedure, eseguite una di seguito all'altra, per poter giungere alla soluzione di un problema; in questo tipo di modello il concetto di "oggetto" ha scarsa rilevanza.
Il passaggio verso la metodologia della programmazione ad oggetti si è avuto nel momento in cui si è data più importanza agli oggetti rispetto alle procedure (anche il concetto di "astrazione" dei dati ha svolto un ruolo importante in questo processo).
L'oggetto è una "entità" che ha un suo stato e che può eseguire determinate operazioni, in questo contesto l'algoritmo perde importanza a favore del concetto di "sistema".
Un sistema è una "porzione" del mondo che una persona, per qualche motivo, considera come un ente unico, composto da diverse componenti, ciascuna delle quali è caratterizzata da proprietà, azioni e correlazioni.
Pensa, ad esempio, alle interfacce grafiche (GUI), composte da alcune componenti (finestre, icone, ecc.) e da azioni che creano correlazioni (ad es. premendo un bottone si apre una finestra).
Ecco, gli oggetti costituiscono le componenti del sistema, le proprietà del sistema corrispondono all'insieme degli stati degli oggetti, gli oggetti comunicano tra loro scambiandosi messaggi (correlazioni del sistema).
Di rilevante importanza è il fatto che gli oggetti sono indipendenti, ciascuno conserva l'informazione al suo interno e il suo contenuto è "nascosto" agli altri, in questo modo vengono introdotti i concetti di "classe" e di "incapsulamento".
Inoltre di particolare importanza è anche il meccanismo di "ereditarietà", grazie al quale il codice può essere riutilizzato, magari "estendendo" moduli già esistenti, il che si traduce in una riduzione dei tempi e dei costi di sviluppo del software.
Infine è bene ricordare che con la programmazione ad oggetti non si "cancellano" i principi della programmazione strutturata, ciò che cambia è la "visione" del problema: l'algoritmo "acquista" un'importanza secondaria rispetto all'individuazione delle entità del problema e delle modalità attraverso le quali tali entità possono interagire tra loro al fine della risoluzione del problema stesso.
Capisco perfettamente che tutto ciò che ho scritto è molto "teorico" ma se vuoi imparare la programmazione ad oggetti è importante partire da esempi semplici, all'inizio apparirà tutto complicato ma col tempo e con l'esperienza si apprezzeranno i concetti dell'OOP, soprattutto quando si avrà a che fare con problemi più complessi ;)
P.S. Per il resto fai riferimento a quanto detto dal bravo @
BAT00cent ;)
- - - Updated - - -
Salve a tutti. Mi piacerebbe sapere come posso creare un software simile a photoshop oppure a quelli della autodesk come autocad o 3D studio max.
Che linguaggio è opportuno nusare? Che software si usa per fare l'interfaccia grafica e aasegnare ad ogni elemento dell'interfaccia una funzione da far svolgere al programma?
Inoltre vorrei sapere una cosa: cosa si intende quandi si parla di programmazione orientata agli oggetti
P.S. Per il resto fai riferimento a quanto detto dal bravo @
BAT00cent ;)