Dsy Network www | forum | my | didattica | howto | wiki | el goog | stats | blog | dona | rappresentanti
Homepage
 Register   Calendar   Members  Faq   Search  Logout 
.dsy:it. : Powered by vBulletin version 2.3.1 .dsy:it. > Didattica > Corsi N - Z > Programmazione > [JAVA] Aiuti
Pages (4): [1] 2 3 4 »   Last Thread   Next Thread
Author
Thread    Expand all | Contract all    Post New Thread    Post A Reply
Collapse
karmo
.illuminato.

User info:
Registered: Feb 2004
Posts: 182 (0.02 al dì)
Location: milano
Corso: informatica
Anno: 3
Time Online: 19:34:43 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
java

ciao ragazzi!
volevo un piccolo aiuto!
sto programmando in java e non riesco a capire il significato delle variabili STATIC e delle variabili FINAL
da quanto ho capito si usa Final per le variabili che non possono essere modificate nel codice sorgente!è cosi!?
spero qualcuno possa aiutarmi!
bye

__________________
"ki ha scritto queste stronzate!!??" disse il cieco toccando una grattugia!

26-10-2004 09:02
Click Here to See the Profile for karmo Click here to Send karmo a Private Message Visit karmo's homepage! Find more posts by karmo Add karmo to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
0m4r
.grande:maestro.

User info:
Registered: Mar 2002
Posts: 7287 (0.84 al dì)
Location: Düsseldorf (DE)
Corso:
Anno: ESAMI FINITI
Time Online: 49 Days, 0:57:33 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

con final dichiari le costanti, cioè, una volta che assegni un valore ad una di queste "variabili", questo non può essere più cambiato.
Ad esempio

code:
final int PIPPO = 100;

rappresenta dichiarazione e assegnamento di una costante (che di solito sono rappresentate scrivendole tutte in maiuscolo) al valore 100. Quindi, poer quanto detto prima, se tu provassi a fare
code:
final int PIPPO = 100; PIPPO = 150;

otterresti un errore in compilazione che ti ricorderebbe che la costante PIPPO è gia stata assegnata (o qualche cosa del genere).

con static invece si "identificano" le variabili che non riguardano un oggetto di una classe ma proprio la classe stessa.

__________________
http://www.twitter.com/0m4r

26-10-2004 09:29
Click Here to See the Profile for 0m4r Click Here to See the Blog of 0m4r Click here to Send 0m4r a Private Message Find more posts by 0m4r Add 0m4r to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Lord_Tom
gentiluomo

User info:
Registered: Dec 2001
Posts: 177 (0.02 al dì)
Location: PAVIA
Corso: laurea quinquennale info
Anno: 5
Time Online: 2 Days, 0:17:35 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

static è usato per condividere la stessa risorsa da più oggetti.
Pensa ad esempio ad una variabile che tiene in memoria i riferimenti ad un database:

...
class DataRetriever
{
...
private static MyDataBase myDataBase ;
...
}

la istanzi una volta e poi tutti gli oggetti la usano

26-10-2004 10:33
Click Here to See the Profile for Lord_Tom Click here to Send Lord_Tom a Private Message Find more posts by Lord_Tom Add Lord_Tom to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
karmo
.illuminato.

User info:
Registered: Feb 2004
Posts: 182 (0.02 al dì)
Location: milano
Corso: informatica
Anno: 3
Time Online: 19:34:43 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

mmm scusa potresti spoiegare meglio il significato di static?
non l'ho capito molto bene...
grazie!:)

__________________
"ki ha scritto queste stronzate!!??" disse il cieco toccando una grattugia!

26-10-2004 10:34
Click Here to See the Profile for karmo Click here to Send karmo a Private Message Visit karmo's homepage! Find more posts by karmo Add karmo to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
karmo
.illuminato.

User info:
Registered: Feb 2004
Posts: 182 (0.02 al dì)
Location: milano
Corso: informatica
Anno: 3
Time Online: 19:34:43 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

scusa ma se voglio che una variabile venga utilizzata da tutta la classe...non basta metterla fuori dalle parentesi di un suo oggetto o di un suo metodo?

__________________
"ki ha scritto queste stronzate!!??" disse il cieco toccando una grattugia!

26-10-2004 10:36
Click Here to See the Profile for karmo Click here to Send karmo a Private Message Visit karmo's homepage! Find more posts by karmo Add karmo to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Jacoposki
.arcimaestro.

User info:
Registered: Sep 2004
Posts: 498 (0.06 al dì)
Location: Milano
Corso: Informatica
Anno: in tesi-sa dio per quanto
Time Online: 4 Days, 0:36:57 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

ma static non erano mica i metodi eseguiti direttamente da una classe invece che da un oggetto?

una risorsa condivisa non è mica una public?

o mi sto incasinando?? ^^

__________________
Mai sottovalutare l'ampiezza di banda di una station wagon piena di nastri lanciata a tutta velocità lungo l'autostrada. - Andrew S. Tanenbaum - Reti di Calcolatori

26-10-2004 12:19
Click Here to See the Profile for Jacoposki Click here to Send Jacoposki a Private Message Visit Jacoposki's homepage! Find more posts by Jacoposki Add Jacoposki to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Simeon
:D

User info:
Registered: Aug 2004
Posts: 984 (0.13 al dì)
Location: Milano
Corso: Informatica
Anno: IT IS OVER!
Time Online: 14 Days, 19:29:42 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Static come diceva qualcuno sono i metodi che si eseguono su una classe anziche' su un oggetto, per esempio

code:
double x = Math.cos(x)


Il metodo cos non puo' essere eseguito su x ( che e' una variabile di tipo primitivo double, non un oggetto ); infatti viene applicato alla CLASSE Math.

Il risultato viene quindi assegnato alla variabile x.

DISCLAIMER : Questo e' tutto quello che so dalla lezione di ieri (25/10), per cui se qualcosa e' incorretto o impreciso mi tutelo :asd:

Last edited by Simeon on 26-10-2004 at 12:28

26-10-2004 12:24
Click Here to See the Profile for Simeon Click here to Send Simeon a Private Message Find more posts by Simeon Add Simeon to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Lord_Tom
gentiluomo

User info:
Registered: Dec 2001
Posts: 177 (0.02 al dì)
Location: PAVIA
Corso: laurea quinquennale info
Anno: 5
Time Online: 2 Days, 0:17:35 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by karmo
scusa ma se voglio che una variabile venga utilizzata da tutta la classe...non basta metterla fuori dalle parentesi di un suo oggetto o di un suo metodo?


Non capisco l'osservazione...che significa una variabile usata da una classe ? ??

cmq nel mio precedente post volevo indicare l'uso più frequente e sensato di "static". Si usa static quando si vuole condividere un "qualcosa" tra più oggetti.

Un caso d'uso è una risorsa. Con risorsa intendo una variabile, una costante, un riferimento ad un' altra classe, un riferimento ad un file etc...

26-10-2004 13:05
Click Here to See the Profile for Lord_Tom Click here to Send Lord_Tom a Private Message Find more posts by Lord_Tom Add Lord_Tom to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
nous
.:Retore Pomposo:.

User info:
Registered: Dec 2001
Posts: 2945 (0.33 al dì)
Location: Fino Mornasco - Como
Corso: Informatica
Anno: Specialista
Time Online: 16 Days, 13:56:49 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

In effetti ha ragione il Lord. Gli attributi statici sono attributi di classe, non di istanza. Questo vuol dire che sono condivisi dagli oggetti che sono istanza di una classe (essendo la classe definita come l'insieme degli oggetti che ne sono istanza) ma non sono da loro modificabile.
Sono modificabili (nel caso in cui la visibilità lo permetta) prima di istanziare un oggetto che li utilizzerà, la modifica ovviamente si ripercuoterà su tutti gli oggetti istanza della classe.
A livello di allocazione di memoria ho una sola allocazione per l'attributo, invece di averne tante quanti gli oggetti che istanzio.
I metodi statici sono utilissimi nelle classe di utilità, nei singleton, nei costruttori statici.

__________________
Cristian,il Nous che invoglia ^_^

"La capa è troppo in la,e la sbarba è troppo giovane..mi sa che qua si va in bianco"
Ryo Saeba (City Hunter)

Last edited by nous on 26-10-2004 at 13:57

26-10-2004 13:54
Click Here to See the Profile for nous Click Here to See the Blog of nous Click here to Send nous a Private Message Visit nous's homepage! Find more posts by nous Add nous to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Lord_Tom
gentiluomo

User info:
Registered: Dec 2001
Posts: 177 (0.02 al dì)
Location: PAVIA
Corso: laurea quinquennale info
Anno: 5
Time Online: 2 Days, 0:17:35 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by nous
Questo vuol dire che sono condivisi dagli oggetti che sono istanza di una classe ma non sono da loro modificabile.


Questo non è vero. Anzi, ogni oggetto può modificare un attributo statico...
Ovviamente questa è causa dei buchi più difficili da individuare.

Un esempio sono le race condition.
Un thread accede al campo statico "number" e lo imposta a 5.
Un altro thread lo imposta a 7.
Il primo prosegue l'esecuzione, pensando sia 5 mentre invece è 7...

Insomma, è importante non abusare dei metodi static ! !

Cmq nous ha evidenziato il secondo grande impiego di static: le classi di utilità !

26-10-2004 13:59
Click Here to See the Profile for Lord_Tom Click here to Send Lord_Tom a Private Message Find more posts by Lord_Tom Add Lord_Tom to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
holylaw
.grande:maestro.

User info:
Registered: Feb 2003
Posts: 3142 (0.37 al dì)
Location: milano
Corso: Magistrale Informatica
Anno: bella domanda
Time Online: 88 Days, 5:30:09: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

cmq vorrei precisare, onde evitare confusione, che esistono sia le variabili static (definiti da Lord_Tom e da nous) sia i metodi static (definiti da Simeon), che sono 2 cose distinte

__________________
La mia epoca ed io non siamo fatti l'uno per l'altro:questo è chiaro. Ma è da vedere chi di noi due vincerà il processo di fronte al tribunale dei posteri.
AV MJØDEN VART DU VIS OG KLOK, SÅ DREKKA MER!!!!
Le persone sagge parlano perché hanno qualcosa da dire.
Le persone sciocche perché hanno da dire qualcosa.

26-10-2004 18:17
Click Here to See the Profile for holylaw Click Here to See the Blog of holylaw Click here to Send holylaw a Private Message Find more posts by holylaw Add holylaw to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
Lord_Tom
gentiluomo

User info:
Registered: Dec 2001
Posts: 177 (0.02 al dì)
Location: PAVIA
Corso: laurea quinquennale info
Anno: 5
Time Online: 2 Days, 0:17:35 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Originally posted by holylaw
cmq vorrei precisare, onde evitare confusione, che esistono sia le variabili static (definiti da Lord_Tom e da nous) sia i metodi static (definiti da Simeon), che sono 2 cose distinte


No, il concetto di static è lo stesso.
Ovviamente si applica a contesti diversi.
E' un po' come dire che un coltello può servire sia come arma bianca sia per tagliare il cibo !

Cmq sono distinzioni un po' inutili...

26-10-2004 18:55
Click Here to See the Profile for Lord_Tom Click here to Send Lord_Tom a Private Message Find more posts by Lord_Tom Add Lord_Tom to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
andreamoz
.consigliere.

User info:
Registered: Jul 2002
Posts: 102 (0.01 al dì)
Location: perduta campagna
Corso: Informatica
Anno: IndexOutOfBoundException
Time Online: 1 Day, 4:26:09: [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

Vediamo se mi spiego:

come ben sapete (vero?) quando chiamate un costruttore di una classe create una nuova istanza di quella classe, cioè un nuovo oggetto. Pensate alla classe come allo "stampino" e all'oggetto come al biscotto (i puristi mi perdonino la semplificazione, che non è neanche corretta fino in fondo, ma è solo per chiarire il concetto...).

Quando avete istanziato un oggetto potete chiamarne i metodi, leggerne o modificarne, ove permesso, i membri, etc.

Ogni oggetto ha i membri definiti dalla classe, ciascuno con i propri valori che variano da oggetto a oggetto. (es classe Persona, oggetti Piero età 25, Luigi età 32, Mario età 13, etc)
Finchè non ho un Piero (o in generale un'istanza di Persona) non posso avere un attributo età, nè di valore 25 nè di nessun altro valore, null compreso.
La variabile età è una variabile di istanza, cioè ha senso solo se abbiamo un'istanza (es. Piero) della classe (Persona).

Pensate invece che alle persone alle automobili: ciascuna automobile ha il proprio numero di telaio, che tendenzialmente è il successivo della macchina costruita precedentemente (la mia povera prof di italiano!). Ora, in ogni istanza (in ogni automobile costruita) io metto una targhetta con il numero di telaio, ma non so quale sarà il numero della prossima automobile costruita. Non ha infatti senso che la singola automobile sappia qualcosa degli altri numeri di telaio.

Questo numero è un attributo di classe, cioè viene usato dalla classe Automobile quando istanzia (attraverso un costruttore) un nuovo oggetto automobile. In Java tale attributo viene identificato con la parola chiave static, che significa appunto che esiste anche senza che esistano istanze di Automobile.

Se a static aggiungiamo final otteniamo una bella costante da utilizzare in lungo e in largo (es banale il fattore di conversione lira/euro).

La stessa cosa, anche se ci sono alcune sottili differenze, vale per i metodi statici. Parlo di differenze perché in realtà i metodi di una classe (statici e non) vengono caricati una sola volta in memoria, e non una volta per istanza (sono uguali per tutti gli oggetti della classe!).

I metodi statici operano tipicamente non su istanze specifiche della classe (ad esempio sull'automobile di telaio 123456) ma sulla classe in genere (ad esempio il costruttore userà un metodo statico per sapere quale sarà il numero di telaio della prossima automobile e ad aggiornare l'attributo statico).

Se pensate, come altro esempio, ai metodi statici della classe Math potete notare che operano non su istanze della classe Math stessa, ma su numeri (int, double, etc).

Se non sono stato chiaro martellatemi pure. Se sono stato chiaro accetto donazioni... :D

__________________
D'OH!

02-11-2004 15:48
Click Here to See the Profile for andreamoz Click here to Send andreamoz a Private Message Find more posts by andreamoz Add andreamoz to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
loly
.simpatizzante.

User info:
Registered: Oct 2003
Posts: 12 (0.00 al dì)
Location: Milano
Corso: informatica
Anno: 2
Time Online: 2:30:41 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged
Unhappy aiuto per java

Buon giorno sono una studentessa di informatica triennale Seguo il corso di programmazione di pighizzini e dopo aver istallato (come da istruzioni di Pighizzini) java
sul mio pc(windows xp)non riesco a compilare nessun programmino.
Il messaggio che mi da il compilatore è:

C:\>j2sdk1.4.1_02/bin/javac prova.java
error cannot read prova.java
1 error

Rimango in attesa di aiuto

Salutoni
Loly

10-11-2004 11:09
Click Here to See the Profile for loly Click here to Send loly a Private Message Find more posts by loly Add loly to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
Collapse
tandrea85
.precettore.

User info:
Registered: Sep 2004
Posts: 95 (0.01 al dì)
Location:
Corso: informatica
Anno: 1
Time Online: 18:21:48 [...]
Status: Offline

Post actions:

Edit | Report | IP: Logged

hai scritto questa riga di comando C:\>j2sdk1.4.1_02/bin/javac prova.java? se è cosi il tuo file prova.java deve essere nella directory C:\>j2sdk1.4.1_02/bin

10-11-2004 11:13
Click Here to See the Profile for tandrea85 Click here to Send tandrea85 a Private Message Find more posts by tandrea85 Add tandrea85 to your buddy list Printer Friendly version Email this Article to a friend Reply w/Quote
All times are GMT. The time now is 03:37.    Post New Thread    Post A Reply
Pages (4): [1] 2 3 4 »   Last Thread   Next Thread
Show Printable Version | Email this Page | Subscribe to this Thread | Add to Bookmarks

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
 

Powered by: vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento | Licenze | Thanks | Syndacate
Pagina generata in 0.095 seconds (68.53% PHP - 31.47% MySQL) con 26 query.