Newsgroup: it.comp.java
Titolo: [Help] ho molta confusione in testa...

Ciao a tutti,
devo imparare Java per la tesi, ma ho incontrato alcune cose poco chiare
sulla OOP (io vengo da Pascal&C):
1) Un programma C o Pascal e' formato da dichiarazione di
variabili+funzioni, una classe Java e' formata da dichiarazione di
variabili+metodi (funzioni...), ma allora che ca\\o di nuovo c'e' nelle
classi? solo il fatto che e' possibile accedere ad un metodo di un'altra
classe da quella in cui ci si trova? Ma non andavano bene anche le librerie
di funzioni di Pascal&C?
2) Ammettiamo di avere 2 classi:
 class Pippo
 {
  variabili_di_pippo;
  metodi_di_pippo;
 }
 class Pluto extends Pippo
 {
  variabili_di_Pluto;
  metodi_di_Pluto;
 }
Questo e' equivalente a scrivere
 class Pluto
 {
  variabili_di_pippo;
  variabili_di_Pluto;
  metodi_di_Pluto;
  metodi_di_pippo;
 }
???????
3) Immaginiamo che io debba usare il metodo mio_metodo della classe Pippo.
Devo scrivere
 Pippo    mio_Pippo;
 mio_Pippo=new Pippo();
vero?
Ora......perche' per usare, per esempio, il metodo sin() della classe Math
del package java.lang non devo fare tutto 'sto casino? (Cioe' non devo
istanziare un oggetto della classe Math?)
Un grazie a tutti coloro che mi possono aiutare (avrete capito che ho
moooolta confusione in testa),
Elisa.

 istanziare un oggetto della classe Math?)
Ma semplicemente perchè sin() è un metodo STATICO, ossia che non si applica
ad una istanza, ma è già disponibile per il fatto stesso che esiste la classe
Math. Se il mio_metodo() di Pippo fosse STATICO, dovresti richiamarlo con
Pippo.mio_metodo, con eventuali effetti collaterali estesi a tutte le
istanze; altrimenti con p.mio_metodo(), ma le conseguenze verranno applicate
a p.
Poi è più facile da capire che da spiegare...
Ciao,
 Stefano
----------
"X WindowSSS, teSSSoro mio... lo odieremo per SSSempre"
Bill Gollum
----------

moooolta confusione in testa),
Non preoccuparti: e' naturale. Chi arriva dalla programmazione
procedurale deve dimenticare un sacco di cose e reimpararle da capo -
mentre altre cose diventano, in OO, semplicemente "dettagli" si'
importanti ma non piu' concettualmente fondamentali. Dimentica la PP e
imparerai piu' in fretta: cerca di starci attaccata, e ti metterai da
sola i bastoni tra le ruote (pardon, gambe ;-). In genere e' molto piu'
facile avvicinarsi all'OOP per chi non ha mai avuto a che fare con PP.
Quindi consolati: mal comune.. :) 
-- 
God is Real, unless declared Integer.
ObjectZone - 
http://space.tin.it/computer/csadun/

Cristiano Sadun wrote:
[SNIP]
Devo proprio dire che Cristiano oltre a quelli artificiali sa usare il
linguaggio naturale 'nabbellezza! :)


 Quindi consolati: mal comune.. :)
Cara Elisa, io mi sono avvicinato per la prima volta alla programmazione
OO in una bella giornata di primavera del 1998, dopo ben 15 anni di
programmazione procedurale (contando anche le scuole superiori). Devo
dire che all'inizio ho fatto parecchia fatica e, come dice Cristiano, 
ero continuamente ostacolato nell'apprendimento dai miei schemi mentali
rigorosamente procedurali. Adesso però mi accade il contrario, cioè che
non riesco più a ragionare in termini procedurali, e applico paradigmi
00 anche a linguaggi che di OO hanno ben poco, come Oracle PL/SQL.
Quindi consolati: all'inizio sarà un po' dura ma poi vedrai che non ne
potrai più fare a meno :) 
Ciao, Cris
-- 
Cristian Veronesi ><((((º> 
http://www.crpa.it
Tzadikin, tzadikin geyen bom / Reshoyim, reshoyim falen bom
("just people will go ahead, evil people will fall" - yiddish song)

Be', un grazie a tutti quelli che mi hanno risposto, adesso (forse) ho le
idee un po' piu' chiare.
Spero di non appesantire il ng con le mie domande (ne ho ancora
molte......).
Un saluto,
Elisa.