Programmazione Orientata agli Oggetti

di il
4 risposte

Programmazione Orientata agli Oggetti

Ciao,

non riesco a capire come funzione la programmazione orientata agli oggetti.

Se nella programmazione procedurale le istruzioni vengono eseguite dall'alto verso il basso, in quella OOP come avviene l'esecuzione?

Per esempio, nella programmazione procedurale io scrivo una funzione nella linea di codice in cui mi serve che venga eseguita, invece non riesco a capire come e quando viene chiamata un metodo di una classe.

Grazie anticipatamente per le vostre risposte.

4 Risposte

  • Re: Programmazione Orientata agli Oggetti

    Domanda un po' vaga a mio avviso, a cui corrisponde una risposta molto, ma molto, grezza e vaga che farà inorridire gli esperti. Ti rispondo come risponderei in Java, ma da quel poco che capisco con C++ dovrebbe essere più o meno la stessa cosa.

    Direi che ci sono concettualmente tre tipi di metodi (è una bestialità dirla così, ma secondo me la capisci meglio):

    - I costruttori che si attivano automaticamente quando istanzi la classe, e potresti averne più di uno con parametri differenti: quando istanzi la classe si esegue il costruttore che c'azzecca meglio

    - I metodi statici, che possono essere chiamati sempre e comunque anche senza istanziare la classe. Per assurdo potresti creare una classe di metodi statici a cui puoi attingere di volta in volta, ma ovviamente possono lavorare solo con i parametri che passi di volta in volta, oppure non avere i parametri e fare un'azione fissa (in queste condizioni non parlerei di programmazione ad oggetti vera e propria, sarebbe solo un altro modo di fare programmazione strutturata).

    - i metodi dinamici che puoi richiamare solo dopo aver istanziato la classe e possono far riferimento a tutti gli oggetti dell'istanza

  • Re: Programmazione Orientata agli Oggetti

    11/04/2023 - E.Zarcone ha scritto:


    […] non riesco a capire come funzione la programmazione orientata agli oggetti.

    Quando, quanto e dove hai studiato della programmazione a oggetti?
    Hai ben compreso i ruoli degli elementi che ne fanno parte?

  • Re: Programmazione Orientata agli Oggetti

    11/04/2023 - E.Zarcone ha scritto:


    Ciao,

    non riesco a capire come funzione la programmazione orientata agli oggetti.

    Se nella programmazione procedurale le istruzioni vengono eseguite dall'alto verso il basso, in quella OOP come avviene l'esecuzione?

    Per esempio, nella programmazione procedurale io scrivo una funzione nella linea di codice in cui mi serve che venga eseguita, invece non riesco a capire come e quando viene chiamata un metodo di una classe.

    Grazie anticipatamente per le vostre risposte.

    Il tuo problema NON E' la programmazione OOP

    MA

    la strutturazione del codice. 

    Dalla domanda ed esempio che fai, e' evidente che non sai come si struttura il codice. Operazione che si fa ALLO STESSO MODO ANCHE con la programmazione procedurale. 

    Anche in OOP l'esecuzione va dall'alto al basso! 

  • Re: Programmazione Orientata agli Oggetti

    La differenza non è nell'ordine in cui dai le istruzioni, ma nell'ambito in cui dichiari le funzioni e le variabili. 

    Finora hai dichiarato (e poi definito) delle funzioni nell'area globale del programma; nella OOP avrai visto che le funzioni vengono dichiarate nell'ambito di una classe. Un oggetto, che è descritto mediante una definizione di classe, è un programma a sé stante che “fa qualcosa”. Quel qualcosa è definito dalle funzioni (metodi) della classe. 

    Chiederai a quell'oggetto di fare qualcosa nel momento in cui invochi una delle sue funzioni.

    Un oggetto può, oltre a fare qualcosa, avere un proprio stato interno oppure no. Lo stato interno è dato dal valore delle variabili (proprietà) che dichiari nell'ambito della classe. 

    Dal punto di vista del codice è simile a quando usi le struct, però non devi pensare alle classi come a “delle struct con anche le funzioni”, ovvero contenitori di variabili, piuttosto in termini di cosa esso si deve occupare. 

Devi accedere o registrarti per scrivere nel forum
4 risposte