![]() |
Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=259)
-- [JAVA] Aiuti (http://www.dsy.it/forum/showthread.php?threadid=14494)
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!
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;
code:
final int PIPPO = 100; PIPPO = 150;
__________________
http://www.twitter.com/0m4r
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
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!
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!
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
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)
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?
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)
Originally posted by nous
Questo vuol dire che sono condivisi dagli oggetti che sono istanza di una classe ma non sono da loro modificabile.
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.
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
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'OH!
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
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
Infatti il mio programma si trova nella cartella bin
Grazie per aver letto il mio msg
Originally posted by loly
Infatti il mio programma si trova nella cartella bin
Grazie per aver letto il mio msg
Grazie ho ricontrollato tutto
e finalmente ci sono riuscita
grazie mille
tecnicamente j2sdk1.4.1_02/bin e' la directory di javac...
prova.java deve essere nella directory di lavoro, ossia c:
ps: ti conviene impostare il path per javac se non vuoi ogni volta riscrivere j2sdk1.4.1_02/bin

__________________
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.
Puoi dirmi per favore come fare
Adesso tutte le volte che compilo mi da questo messaggio:
'class' or 'interface' expected
cosa vuol dire?
pannello di controllo, sistema, avanzate, variabila di sistema e aggiungi alla voce path c:\j2sdk1.4.1_02\bin
quando digiti un comando nel prompt, windows cerca l'eseguibile nella directory di lavoro e nei percorsi (path, appunto) di questa variabile d'ambiente
per il tuo errore direi che ti sei dimenticata di scrivere "class" all'inizio...
__________________
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.
o che ti è sfuggita una parentesi graffa chiusa di troppo da qualche parte...
__________________
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
Originally posted by loly
Grazie ho ricontrollato tutto
e finalmente ci sono riuscita
grazie mille
Ringrazio tutti per i suggerimenti
vi contatterò se dovessi avere ancora bisogno di aiuto!!
Classpath...
ciao a tutti, stamatina al SiLab, ho impostato la variabile Classpath e installato il package prog.io, e tutto funzionava alla xfezione
ARRIVATO A CASA, e ripetuto la stessa operzione (UGUALE), il compiler non trova il packagem cosa posso fare???
SONO DISPERATO!!!
AIUTATEMI
__________________
GM Aerandir
Neverage L][ GDR Shard by Italian Realm
www.italianrealm.com
il classpath lo hai scritto anche per le variabili d'ambiente della tua utenza?
ma per compilere usi un programma apposta o Dos? Perchè se usi un programma apposta allora lo devi impostare!
se non è questo non so proprio cosa dirti!
ciao
Just
x compilare utilizzo DOS,
il CLASSPATH E' IMPOSTATO SIA SU VARIABILI DI SISTEMA che SU VARIABILI UTENTE...
xò il package nn lo becca...
proverò su un'altro profilo di windows...
__________________
GM Aerandir
Neverage L][ GDR Shard by Italian Realm
www.italianrealm.com
il package deve essere una cartella con il nome "prog"
Intervento del moderatore:
Sposto, Filez è solo per gli allegati
__________________
"Voi che tingete i mari del colore dello zinco, che tramutate i boschi in gialli deserti, i venti in fumi di polveri da sparo e che bruciate i cieli. Voi che volete ripetere i malvagi atti della sconsiderata Lilith, che fu la prima moglie di Adamo e poi la sposa del Diavolo. Voi che volete ripetere la ribellione scatenata da Lucifero, del mondo celeste il più splendente. Voi! Ascoltate l'afflizione della sottospecie alata che vola alta nel cielo." [Angel Sanctuary]
::: mail: yoruno@dsy.it ::: ::: My Site ::: ::: Dsy Photo Gallery ::: ::: DeviantART Gallery :::
Problemi con Java!
Ho un fastidioso problema con Java: fastidioso perchè non deriva dal fatto di averlo capito o no, ma da altro..
Vi spiego:
Nei lucidi della prof Alberti c'è un esempio di una classe Moneta e di un programma driver LanciaMoneta
Quando faccio per compilare il secondo (il primo non mi ha dato problemi) la java machine mi da un errore e precisamente questo:
LanciaMoneta.java:7: '.' expected
import Moneta;
^
Non so che tipo di problema sia.. Mi potete aiutare?
Grazie!
non riesco a capire bene il significato di quel . (punto)
se posti il codice dell'intera classe è meglio!!!
se non puoi postarlo (perchè è un compito d'esame....) inviamelo in PVT (tanto io l'ho superato l'esame)
ciaoz
Non vorrei fosse che, essendo nella stessa cartella, non serve importarlo (sparo a caso, io ho sempre in sottocartelle le classi)...
O magari prova a importare Moneta.*;
__________________
"Voi che tingete i mari del colore dello zinco, che tramutate i boschi in gialli deserti, i venti in fumi di polveri da sparo e che bruciate i cieli. Voi che volete ripetere i malvagi atti della sconsiderata Lilith, che fu la prima moglie di Adamo e poi la sposa del Diavolo. Voi che volete ripetere la ribellione scatenata da Lucifero, del mondo celeste il più splendente. Voi! Ascoltate l'afflizione della sottospecie alata che vola alta nel cielo." [Angel Sanctuary]
::: mail: yoruno@dsy.it ::: ::: My Site ::: ::: Dsy Photo Gallery ::: ::: DeviantART Gallery :::
errore da principiante!
non serve importarla perchè è nella stessa classe!! c**zo!!
grazie dell'aiuto! ![]()
[java]materiale
ho deciso che è ora di imparare java....dato che volenti o no, lo si deve imparare.....qualcuno mi sa dare consigli su testi da usare,
riferimenti internet utili o altro.....
premetto che parto se non da zero, poco ci manca.
GRAZIE
- http://java.sun.com
- http://netdev.usr.dico.unimi.it/docs/index.html
__________________
http://www.twitter.com/0m4r
Originally posted by 0m4r
- http://java.sun.com
- http://netdev.usr.dico.unimi.it/docs/index.html
la javadoc in italiano non credo che esista (per fortuna).
IDE gratutite per java potrebbero essere:
- NetBeans
- JCreator
- Eclipse
...altre non me ne vengono, ma se cerchi con google trovi qualcosa in più di sicuro
__________________
http://www.twitter.com/0m4r
java
ciao a tutti, ho il seguente problema: non riesco a leggere tutto il contenuto del file usando il metodo readLine()... ho fatto così:
FileInputManager in = new FileInputManager(file);
while(in.readLine() != null)
testo += in.readLine() + '\n';
..dove sbaglio??
__________________
Live Fast, Die Fun
Credo che per le stringhe non puoi usare i normali operatori +, += eccetera... credo esistano apposite funzioni, del tipo Concatena(stringa1, stringa2)...
Nel C puoi ridefinire gli operatori, non mi ricordo se anche nel java si può...
anche io ci ho pensato ma poi ho provato a fare:
testo = in.readLine();
testo1 = in.readLine();
testo_finale = testo + testo1;
e la concatenazione è avvenuta con successo....
__________________
Live Fast, Die Fun
la concatenazione la si puo' fare sia con il metodo concat che col + normalmente...
cmq...prova a mettere il carattere new line come stringa...a me faceva lo stesso errore...se proprio non lo accetta aggiungici uno spazio alla fine, cioe' " \n", al posto di "\n", ma prova prima quest'ultimo
![]()
__________________
"Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk agh burzum-ishi krimpatul"
Originally posted by darkAntAreS
la concatenazione la si puo' fare sia con il metodo concat che col + normalmente...
cmq...prova a mettere il carattere new line come stringa...a me faceva lo stesso errore...se proprio non lo accetta aggiungici uno spazio alla fine, cioe' " \n", al posto di "\n", ma prova prima quest'ultimo
![]()
__________________
"Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk agh burzum-ishi krimpatul"
li ho provati tutti e due e niente... mi stampa:
nullprova
null
invece il file contiene:
ciao ciao, come va?
prova
pippo
__________________
Live Fast, Die Fun
bho...inizializzata la variabile testo con testo = "" ?...altre cose dovrei dare un'occhiata al libro...faccio stasera...entro domattina riscrivo ![]()
__________________
"Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk agh burzum-ishi krimpatul"
inizializzando la var testo="" viene fuori
prova
null
__________________
Live Fast, Die Fun
non l'ho provato, ma testalo in questo modo:
code:
FileInputManager in = new FileInputManager(file); String testo = in.readLine() + "\n"; while(in.readLine() != null){ testo += in.readLine() + "\n"; }
__________________
http://www.twitter.com/0m4r
così mi salta la seconda riga, ovvero mi stampa:
ciao ciao, come va?
pippo
il file contiene:
ciao ciao, come va?
prova
pippo
__________________
Live Fast, Die Fun
Originally posted by ste182
così mi salta la seconda riga, ovvero mi stampa:
ciao ciao, come va?
pippo
il file contiene:
ciao ciao, come va?
prova
pippo
code:
FileInputManager in = new FileInputManager(file); String s = ""; for(String t = in.readLine()+"\n"; t!=null; t=in.readLine()+"\n"); s +=t; System.out.println(s); }
__________________
http://www.twitter.com/0m4r
..ancora peggio ehehehe
__________________
Live Fast, Die Fun
ora ho fatto così:
String riga = in.readLine() + "\n";
do
riga += in.readLine() + "\n";
while(in.readLine() != null);
in.close();
e mi stampa tutto giusto tranne che sull'ultima riga, mi mette "null" al posto di "pippo"
__________________
Live Fast, Die Fun
tentare non nuoce ![]()
code:
FileInputManager in = new FileInputManager(file); String riga = ""; while((riga = in.readLine()) != null) { System.out.println(riga); }
__________________
"Ash nazg durbatulûk, ash nazg gimbatul, ash nazg thrakatulûk agh burzum-ishi krimpatul"
il problema è che al posto di stampare la riga, dovrei memorizzarla in una variabile e concatenare ogni volta la riga successiva che leggo.... in pratica devo leggere tutto il contenuto del file e metterlo in una variabile...
__________________
Live Fast, Die Fun
Originally posted by darkAntAreS
tentare non nuoce
code:
FileInputManager in = new FileInputManager(file); String riga = ""; while((riga = in.readLine()) != null) { System.out.println(riga); }
code:
FileInputManager in = new FileInputManager(file); String riga = ""; String testo = ""; while((riga = in.readLine()) != null) testo += riga;
ok funziona! grazie mille![]()
__________________
Live Fast, Die Fun
Originally posted by ste182
il problema è che al posto di stampare la riga, dovrei memorizzarla in una variabile e concatenare ogni volta la riga successiva che leggo.... in pratica devo leggere tutto il contenuto del file e metterlo in una variabile...
Se qualcuno ha bisogno di una mano con java per il prossimo appello, mi faccia sapere con un pm. Ciao a tutti
| All times are GMT. The time now is 05:57. | Show all 56 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.