Newsgroup: it.comp.java
Titolo: [newbie in java]- un aiuto urgente

salve a tutti!
questa volta vi pongo un altro tipo di quesito. sempre nel manuale JAVA2 che
sto utilizzando per studiare questo linguaggio di programmazione vedo
scritto che un array si crea digitando, per esempio
double [ ] prova = new double [10];
fin qui ci sono. ma in un metodo statico, una dicitura come questa:
int [ ] aiuto;
a cosa serve? a creare un vettore aiuto? senza il "new"? e senza un
"delimitatore" di "cellette" di array (scusate la mia elementare
espressione, non vogliatemene male!)?
inoltre in una classe che ho qui sottomano (nulla di che, è una classe di
esercitazione...) non riesco ancora a capire perché questo metodo scambia in
realtà non scambi niente!
 public static void scambia (int[]arr1, int[]arr2)
 {
  int[]aiuto;
  aiuto = arr1;
  arr1 = arr2;
  arr2 = aiuto;
 }
queste righe qui sopra non dovrebbero scambiare i valori di aiuto con quelli
di arr1 per esempio? non riesco a focalizzare bene il tutto... capisco bene
che non è un metodo come invece questo:
 public static void scambiaEl (int[]arr1, int[]arr2)
 {
  int aiuto;
  for (int i = 0; i<arr1.length; i++)
  {
   aiuto = arr1[i];
   arr1[i] = arr2[i];
   arr2[i] = aiuto;
  }
 }
che col FOR prende ogni posizione dell'array aiuto e la mette in arr2 per
esempio... Ma tutt'ora non capisco allora il metodo scambia cosa combini!!
Scambia che cosa?! :)) I nomi degli array e si prende gioco di me? :-P!
Grazie a chi di buon animo mi vorrà aiutare! :P
Bd

  }
arr1 e arr2 in realtà sono dei puntatori ad aree di memoria. Cambiandone 
il valore all'interno del metodo scambia, le variabili nel metodo 
chiamante non subiranno variazioni, a meno che non si vadano (come 
nell'altro tuo esempio) a scambiare i valori *puntati* da arr1 e arr2.
vedi la parola chiave return nella documentazione.
Kali

 Bd

 se non funzionasse prenderebbe in giro anche me... ; )
eh eh, credimi... l'ho appena provato!
Bd

 non capisco cosa vuoi dire...??? che è sto delimitatore di cellette??
Intendevo... a creare un array senza "posizioni" non so se mi spiego...
double [] bd = new double[10]
ha dieci "posizioni" - linguaggio infantile -
uno come
double [] bd;
non ha posizioni! intendevo questo :)!
;))
Bd

 Bd
ciao marco

 Bd
ciao marco

> qui istanzi solo la variabile senza assegnargli un valore...
Ma praticamente cosa vuol dire "istanzi solo la variabile"? Nel senso che
crei la variabile (come potresti fare con int variabile; )...  o un vettore
"senza nulla dentro"?
Buona cena, :)
Bd

 Bd
ciao marco

 }
All'interno del metodo, lavori sul *contenuto* degli array, quando
ritorni dal metodo avrai le variabili unArray ed unAltroArray che
puntano sempre agli array di prima, ma *dentro* gli array i *valori*
saranno scambiati.
Claro?
Mauri. 
-- 
La forza di gravità è un falso mito,
è la Terra che succhia!

 ha scritto nel messaggio
news:3c391574...@powernews.libero.it...


 affermando a proposito del metodo scambia...
e io che ho detto?
Kali

 (ed è per questo che alcuni affermano che Java passa tutto per valore). Se
Non e' che 'alcuni' lo affermano. E' effettivamente come funziona e la
spiegazione ufficiale da parte di Sun.
Tutto il resto, tipo "i tipi base vengono passati per copia e i tipi complessi
per reference", e' al massimo un modello approssimativo che puo' talvolta
portare a problemi.
ciao
uL
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:bff0a3c694313712644...@mygate.mailgate.org...


 senza il new perchè non si vuole dare il valore...
Scusa, volevo chiederti come fare ad instanziare oggetti senza il new
(visto che gli array in java sono trattati come oggetti)
ciao Angelo


 
senza il new perchè non hai istanziato niente... 
