programmazione orientata ad oggetti - teoria

Stato
Discussione chiusa ad ulteriori risposte.

black_devil

Utente Silver
10 Giugno 2007
75
13
3
76
http://nessuno.gotdns.org/oop_theory/
Ho tirato giù queste quattro piccole pagine, volevo sapere che cose ne pensavate ;)
In particolare l'ultima pagina è quella dove c'è più teoria, ed è anche la più lunga.
È una piccola guida che vuole spiegare a livello teorico cos'è l'OOP. Una paronamica generale concisa.
 
bella :) ma troppo sintetica.... se vuoi un consiglio soffermati di piu sulle api e sulle classi di java....
 
Si, non deve essere una guida a Java, ma solo una piccola e sintetica (come detto nell'introduzione) spiegazione dell'oop come concetto teorico e mettendo subito in pratica quello che si è acquisito con qualche esempio, niente di più.
Comunque grazie ;)
 
Scrivo le mie impressioni mentre leggo:

Beh, sulla parte relativa alla programmazione "imperativa" hai ciollato un po',

La programmazione imperativa, non e' OOP.
La programmazione imperativa e' un altro paradigma di programmazione.

Sono entrambi statement falsi. La programmazione imperativa è quel paradigma in cui un programma è pensato come una sequenza di istruzioni eseguite dall'elaboratore. La stragrande maggioranza dei paradigmi di programmazione fa parte della famiglia della programmazione imperativa (procedurale, strutturata, la stessa OOP). Per farti capire meglio alla programmazione imperativa si può contrapporre la *Funzionale*, ma non certo la OOP.
Tu lì stai parlando di programmazione procedurale e strutturata, non in genere di programmazione imperativa.
O, almeno, così vedo io la questione, probabilmente entrambe le visioni sono discutibili.

Fai molto riferimento al C:
e le procedure e le funzioni dichiarate sopra, in modo che possano essere visibili dal main.
Queste features sono relative al linguaggio, non al paradigma.

Quando dici che c'è una gestione della memoria di tipo LIFO specifica che stai parlando dello stack delle chiamate a funzione, messo così sembra che tutta la gestione della memoria sia così fatta (e non è vero).

Per la parte finale della seconda pagina, torno a ripetere, stai parlando di programmazione strutturata e procedurale parlando di istruzioni condizionali, cicli, e funzioni. Anche l'asm credo si possa annoverare tra i linguaggi a paradigma imperativo, eppure non ha queste features, spero di essere stato esplicativo ^^

Nella parte terza, di nuovo stai illustrando una feature del C++ e del Java rispetto al C, e non della OOP contro la procedurale in genere, le regole di visilibilità sono dipendenti dal linguaggio.

Quarta parte:
Sono dichiarate come 'private' perche' solo un rettangolo puo' accedere a quello stato.
Questo si può buttar giù meglio IMHO

In hava la diciarazione degli oggetti avviene nel seguente modo.
Piccolo bad typo :p

Per il resto quest'ultima pagina mi pare OK.
 
Oh finalmente
Grazie grazie grazie. Almeno qualcuno che l'ha letta e non si è limitato a scrivere i soliti complimenti da lecca-culo (successo in qualche forum, lasciamo stare xD).
Bene direi che ho floppato un po', ma ora sistemo sisi. Miglioro tutto.
Uppo il post non appena ho avrò sistemato ogni cosa, grazie tilde :D
 
Anche io anche io.

e' un paradigma di programmazione che si inizia a studiare a partire dagli inizi degli anni 90.

Wikipedia sul C++ ha detto:
It was developed by Bjarne Stroustrup starting in 1979 at Bell Labs as an enhancement to the C programming language and originally named C with Classes.

il Java, che e' uno dei linguaggi pioneri dell'OOP.

Wikipedia sul Java ha detto:
Java is a programming language originally developed by James Gosling at Sun Microsystems (which is now a subsidiary of Oracle Corporation) and released in 1995

Wikipedia sullo Smalltalk ha detto:
Smalltalk is an object-oriented, dynamically typed, reflective programming language. [...]
It was designed and created in part for educational use, more so for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Scott Wallace, and others during the 1970s.

Un typo ha detto:
ogni concetto e' importate.

Un altro typo (oppure non ho capito) ha detto:
E non mi preoccupate

E ci sono un sacco di typo, dovresti rileggere tutto, evitero' di citare i typo d'ora in poi.

La pagina due e' semplicemente tutta sbagliata.

Pagina 3 ha detto:
Nell'OOP il programma e' formato da un insieme di oggetti. Questo insieme si chiama classe.

Gli oggetti sono istanze delle classi, quindi non ho capito cosa volevi dire.

Pagina 4 ha detto:
Come abbiampo accennato prima, una classe e' un insieme di oggetti.

No.

Tutta la questione di messaggi e mica messaggi mi sa che ti ha confuso. I "messaggi" non sono altro che la traduzione di "chiamate a funzione", come "metodo" non e' altro che la traduzione di "funzione", dove per traduzione intendo "traduzione da nome scemo dato da qualche scemo che ha deciso di cambiare i nomi di cose gia' esistenti giusto per fare i fighi".

Per concludere, non e' proprio una guida teorica visto che fai riferimenti sintattici ed a features di vari linguaggi di programmazione ed e' prevalentemente sbagliata.

Pero' carino il conta caratteri e parole ^_^
 
@meh: sul "le classi sono insiemi di oggetti", non vorrei sbagliarmi ma potrebbe essere inteso nel senso che nella OOP ogni cosa è da intendersi come "oggetto" (nel senso astratto del termine), e che le classi ne racchiudono alcuni al fine di definirne altri più complessi, trattando la questinoe in maniera puramente teorica. Sicuramente ho letto da qualche parte che qualcuno parlava di sta roba, o roba simile.
 
Perfetto :D
Direi che rimuovo il link e non appena avrò scritto qualche cosa di fatto bene, upperò :D
Vi ringrazio entrambi per le dritte e le correzioni, sinceramente non so nemmeno perché ho scritto quella cosa o_O
Avevo la testa totalmente occupata in un altro progetto (che potete trovare nella sezione news from underground) e in un attimo di tempo avevo deciso di tirare giù qualche riga, per vedere cosa mi ricordavo. (Ed a quanto pare, di teoria mi ricordo davvero poco, dunque corro a ripassare :D).
Che altro dire, rimuovo, uppo poi. E ancora grazie ;)
 
tilde ha detto:
@meh: sul "le classi sono insiemi di oggetti", non vorrei sbagliarmi ma potrebbe essere inteso nel senso che nella OOP ogni cosa è da intendersi come "oggetto" (nel senso astratto del termine), e che le classi ne racchiudono alcuni al fine di definirne altri più complessi, trattando la questinoe in maniera puramente teorica. Sicuramente ho letto da qualche parte che qualcuno parlava di sta roba, o roba simile.

Le classi non racchiudono niente, sono appunto, classi.

Semmai le istanze delle classi, ovvero gli oggetti, sono insiemi di oggetti.

Poi se uno vuol fare le cose particolari e vuol fare che le classi sono oggetti cazzi suoi, questo non toglie che definire classi "insieme di oggetti" sia sbagliato.
 
Stato
Discussione chiusa ad ulteriori risposte.