Digitale Libero

Oltre il solito Blog!



Mese: gennaio, 2012

Corso Base Programmazione – Gli oggetti (OOP)

31 gennaio, 2012 (22:29) | Informatica, Programmazione | Di: neutrino

All’inizio la programmazione era strutturata, poi verso la fine degli anni ’80 alcuni linguaggi di programmazione come il C divennero estesi e orientati agli oggetti (OOP, Object Oriented Programming) e questo ha portato significativi cambiamenti sia a livello di stesura del codice sia per flessibilità e ottimizzazione del software creato. Programmare ad oggetti significa proprio creare una sorta di oggetti virtuali, per esempio i pulsanti di windows che siamo abituati a usare nelle applicazioni sono oggetti, che comunicano tra loro scambiandosi informazioni. L’ambito in cui si può notare di più l’utilizzazione degli oggetti e quello della realizzazione di interfacce grafiche per i software che usiamo tutti i giorni.

La programmazione ad oggetti implica la suddivisione di un programma in classi dove devono venire dichiarate le strutture dei dati e le procedure interne alla classe stessa. Le classi hanno attributi e metodi, permettono la creazione di oggetti e mediante l’ereditarietà è possibile creare nuove classi con le caratteristiche di quella originaria ma con funzioni estese. Il vantaggio di questo approccio alla programmazione è relativo al fatto che il programmatore che utilizza un oggetto creato da altri non ne manipola il codice e non tocca mai i dati con mano ma li fa gestire alle funzioni che sono associate alla struttura dati di quell’oggetto. Gli oggetti in programmazione sono paragonabili a quelli della nostra vita quotidiana, prendiamo ad esempio un telefonino:

Proprietà: colore, larghezza, altezza, spessore, peso

Metodi: composizione numeri per chiamata, invio SMS, invio MMS, gestione rubrica telefonica

Ogni linguaggio di programmazione usa delle parole chiave per creare (instanziare) un oggetto partendo dalla classe creata, e di solito la parola riservata per questo tipo di operazione è  new.

Quindi una volta definita la classe telefonino con i suoi metodi e le sue proprietà sarà possibile utilizzarla creando nuovi oggetti derivati dalla classe stessa. Ad esempio:

nokia = new telefonino

samsung  = new telefonino

In questo modo avremo due oggetti derivati dalla classe telefonino ma con nome diverso e, soprattutto, trattati in modo diverso anche per quanto riguarda l’allocazione in memoria.

Come ho accennato precedentemente la OOP prevede che l’utilizzatore di un oggetto possa conoscere solo i parametri essenziali che servono allo scopo finale dell’oggetto ma non può accedere ai parametri interni che ne regolano il funzionamento, in questo caso l’oggetto può avere tre tipi diversi di proprietà:

  • proprietà pubbliche che sono accessibili a qualsiasi classe del programma
  • proprietà private che inaccessibili alle altre classi del programma
  • proprietà protette che sono accessibili solamente alle sottoclassi dell’oggetto

La OOP implica anche il concetto di ereditarietà che definisce la possibilità di una classe di diventare erede di un’altra potendo così aggiungere dei metodi che la precedente non ha, in pratica la classe figlia (erede) diventa una specializzazione di quella genitore.

Un’altro concetto relativo alla OOP è dato dal polimorfismo, argomento abbastanza ostico per chi vi s’imbatte per la prima volta ed ha la sensazione di avere a che fare con dei mostri che cambiano e mutano sotto il proprio naso.  Il polimorfismo è basato proprio sul concetto di ereditarietà e ci premette di ridefinire le proprietà, funzioni, metodi della classe in modo che il loro utilizzo nella classe derivata sia diverso da quello della classe base.

Ritornerò sulla OOP per spiegarla meglio e con esempi concreti quando affronteremo la programmazione utilizzando un vero e proprio linguaggio che andremo ad imparare, questo linguaggio sarà il PERL.

Alla prossima.

Questo articolo è © DigitaleLibero.com