Pagina 1 di 2
Libro sulla OOP
Inviato: lun 22 ott 2007, 17:51
da conraid
Qualcuno ha un titolo, possibilmente in italiano, da consigliarmi per apprendere le basi della programmazione ad oggetti? Preferivo qualcosa di teorico, non relativo ad un linguaggio specifico.
Mi hanno consigliato
questo, che ne pensate? Qualcuno lo conosce?
La maggior parte dello sviluppo dopo sarà con PHP, ma mi piaceva tornare su questo metodo visto che non l'ho mai digerito, e gli unici approcci risalgono alla fine degli anni '90 con Java
Inviato: lun 22 ott 2007, 18:23
da acrive
Io ho un buon ebook, ma usa degli esempi Java.. che ne dici?
Inviato: lun 22 ott 2007, 18:29
da conraid
acrive ha scritto:Io ho un buon ebook, ma usa degli esempi Java.. che ne dici?
Se pensi che sia fatto bene volentieri. Per gli esempi non c'è problema, purtroppo alcuni usano specifiche precise e particolari di un linguaggio
Inviato: lun 22 ott 2007, 18:38
da acrive
Credo di si.. ho aggiunto il tuo contatto su msn.
Inviato: lun 22 ott 2007, 18:45
da conraid
acrive ha scritto:Credo di si.. ho aggiunto il tuo contatto su msn.
ricevuto, thanks, ora ci do un'occhiata
Inviato: mer 24 ott 2007, 20:56
da sir_alex
Bè, dubito esista un libro di OOP che non faccia esempi in alcun linguaggio...

chiaramente i più vecchi magari usano C++, adesso trovi libri con Java, o C#... io personalmente sono per i Deitel&Deitel, spiegano le cose molto chiaramente; altrimenti penso ci siano classici che spiegano le cose, ma non ne conosco!
Inviato: gio 25 ott 2007, 11:11
da conraid
Esempi va bene, ma non che parlasse esclusivamente di un linguaggio con le sue specifiche e basta.
Inviato: gio 25 ott 2007, 12:40
da Paoletta
questo é bello:
Giovanni Pighizzini e Mauro Ferrari. Dai Fondamenti agli Oggetti: Corso di Programmazione Java. Pearson Addison-Wesley, 2003.
Inviato: gio 25 ott 2007, 12:47
da targzeta
conraid ha scritto:Esempi va bene, ma non che parlasse esclusivamente di un linguaggio con le sue specifiche e basta.
Guarda che passare da un linguaggio ad un altro non crea problemi di nessun tipo. All'università mi hanno insegnato il Java come linguaggio per la programmazione ad oggetti (ed ora odio il Java), con i concetti acquisiti è stata una passeggiata studiare sia il C++ che il PHP. Il mio consiglio è di non preoccuparti più di tanto, scegli un libro, cerca di capire i fondamenti e applicali con un linguaggio qualsiasi.
Spina
Inviato: gio 25 ott 2007, 13:01
da conraid
spina ha scritto:
Guarda che passare da un linguaggio ad un altro non crea problemi di nessun tipo. All'università mi hanno insegnato il Java come linguaggio per la programmazione ad oggetti (ed ora odio il Java), con i concetti acquisiti è stata una passeggiata studiare sia il C++ che il PHP. Il mio consiglio è di non preoccuparti più di tanto, scegli un libro, cerca di capire i fondamenti e applicali con un linguaggio qualsiasi.
si, lo so.
Anche io ho studiato Java, ma la programmazione ad oggetti non mi è mai entrata in testa. Volevo riprendere un po', e mi sono accorto che i libri che avevo, o leggendo in rete, alla fine non mi danno le "basi", ma solo infarinatura. Quindi cercavo qualche libro teorico sulla OOP, che poi sia relativo ad un linguaggio ok. Ma se è un capitolo introduttivo per poi spiegare il linguaggio ho visto che non riesco a farmelo entrare bene in testa.
Molti mi hanno consigliato di dimenticare la programmazione procedurale, fare finta di riprendere da capo, ma come si fa? Sembra facile a dirsi

Inviato: gio 25 ott 2007, 13:23
da targzeta
conraid ha scritto:...Molti mi hanno consigliato di dimenticare la programmazione procedurale, fare finta di riprendere da capo, ma come si fa? Sembra facile a dirsi

Ma cos'è che non ti entra in testa? Il concetto fondamentale è essere il più generici possibili.
Faccio un esempio. Supponi di avere un Form per l'immissione di dati, supponiamo di avere 10 campi. Alcuni campi devono essere controllati, ad esempio il campo telefono non può contenere lettere, ma solo cifre numeriche e al più un + iniziale.
Supponi ora di non aver sempre la necessità di controllare i campi del form.
Una prima soluzione è quella di fare un oggetto Form che abbia al suo interno tante variabili per quanti sono i campi. Ovviamente il costruttore dell'oggetto si occupa solo di inizializzare le variabili. Poi, a seconda che si voglia o meno controllare i campi si può eseguire un metodo dell'oggetto chiamato, ad esempio, "check_fields()".
Una soluzione con il paradigma ad oggetti invece è quella di creare un oggetto Form, il cui costruttore si limita ad inizializzare le variabili. Successivamente si crea un altro oggetto chiamato Form_check che estende l'oggetto Form. Il costruttore di questo secondo oggetto potrebbe richiamare il costruttore del padre (Form) e poi controllare i campi.
La seconda soluzione ti permette di spostare tutti i compiti relativi al Form all'oggetto Form, gli altri compiti vengono svolti da altri oggetti e non da metodi del Form (che concettualmente non dovrebbero stare nel Form).
Infatti supponi ora che hai la necessità di controllare che tutti i campi siano stati inseriti e correttamente. Potresti creare una sottoclasse di Form_check che, oltre a controllare i campi, richiamando il costruttore di Form_check, controlla anche se tutti i campi sono stati inseriti.
Se hai dubbi chiedi pure,
Spina
Inviato: gio 25 ott 2007, 13:37
da conraid
spina ha scritto:
Ma cos'è che non ti entra in testa? Il concetto fondamentale è essere il più generici possibili.
Più che altro è che alla fine mi torna meglio procedere con funzioni e vecchio stile.
L'esempio che hai fatto tu io lo vedo bene nella mia testa con uno stile procedurale.
Solo che siccome mi accorgo che a volte uso le funzioni come se fossero oggetti, volevo riprendere un po' a studiarci su.
Cosa non mi entra? A suo tempo le relazioni tra oggetti per esempio.
Ma non ho mai approfondito e volevo farlo adesso.
spina ha scritto:
Se hai dubbi chiedi pure,
Thanks, appena mi rimetto a studiarci un po' su tornerò a "rompervi"

Inviato: gio 25 ott 2007, 13:53
da gallows
Perché non inizi a fare qualche piccolo programma con le gtkmm (o PyGTK al limite)? Secondo me per fare pratica con l'OOP lo sviluppo di widget e finestre aiuta tantissimo. Io ho imparato così.
Inviato: gio 25 ott 2007, 14:11
da conraid
gallows ha scritto:Perché non inizi a fare qualche piccolo programma con le gtkmm (o PyGTK al limite)? Secondo me per fare pratica con l'OOP lo sviluppo di widget e finestre aiuta tantissimo. Io ho imparato così.
Perché non conosco Python o C++
Dovrei anche studiare il linguaggio. Mi manca il tempo purtroppo.
Però il consiglio di widget e finestre può essere interessante, magari guardo come è fatto GTKPHP, ai tempi che studiavo Java era proprio la parte più "noiosa"

Inviato: gio 25 ott 2007, 23:21
da sir_alex
gallows ha scritto:Perché non inizi a fare qualche piccolo programma con le gtkmm (o PyGTK al limite)? Secondo me per fare pratica con l'OOP lo sviluppo di widget e finestre aiuta tantissimo. Io ho imparato così.
Secondo me non è invece utile imparare i meccanismi di OOP con interfacce grafiche, perchè a parte la costruzione di questa come codice (di solito autogenerato dai tools), spesso i metodi degli handlers degli eventi sono più simili al procedurale... invece la parte di logica dei programmi è molto più adatta a questo, con (parlo di Java) ad esempio JavaBeans per le parti di dato ed altri oggetti che ne gestiscano le operazioni...