View Full Version : [Java] Array di una classe
wizard_at
20-05-2008, 21:50
ciao a tutti,
come faccio a creare un'arrey di una classe che devo inizializzare.
per spiegarmi meglio:
questa e' la classe
class nome{
nome(int a){bla; bla; bla;}
bla bla bla;
}
questo e' l'array(la forma non e' corretta perche' non me la compila)
nome carlo[] = new nome[10](6);
ciao e grazie a tutti
wingman87
20-05-2008, 22:10
Non puoi dichiarare l'array e al tempo stesso inizializzarlo con quella sintassi. Puoi usare due metodi:
- il primo, che è quello che in genere viene più usato, prevede la dichiarazione dell'array prima e poi un ciclo per inizializzarne gli elementi, esempio:
nome carlo[] = new nome[10];
for(int i=0;i<carlo.length;i++)
carlo[i]=new nome(6);
- il secondo si usa in genere se devi dichiarare array di dimensioni ridotte e prevede l'istanziamento dei singoli oggetti al momento della dichiarazione dell'array, esempio:
nome carlo[]={new nome(6),new nome(6),new nome(6),new nome(6),new nome(6),new nome(6)};
Detto questo vorrei farti solo un piccolo appunto: i nomi delle classi scrivili con l'iniziale maiuscola, è una questione di leggibilità e di standard, vedendo un codice scritto in questo modo puoi riconoscere subito a colpo d'occhio quali sono le classi coinvolte anche se si trovano in file diversi.
wizard_at
21-05-2008, 07:10
grazie 1000.
non si puo' usare invece di
nome carlo[] = new nome[10];
for(int i=0;i<carlo.length;i++)
carlo[i]=new nome(6);
questo?
nome carlo[] = new nome[10];
for(carlo i : nome)
i=new nome(6);
si puo' o no? se non si puo' perche'?
questo?
nome carlo[] = new nome[10];
for(carlo i : nome)
i=new nome(6);
si puo' o no? se non si puo' perche'?No, non si può. Facendo i=new nome(6) tu semplicemente istanzi un nuovo oggetto di tipo nome e il reference lo assegni alla variabile locale 'i', non ad un elemento dell'array.
Per assegnare il reference ad un elemento dell'array dovresti avere l'indice, il quale però è "nascosto" nel for-each. Quindi dovresti usare il for normale.
banryu79
21-05-2008, 09:29
Se non erro, il for-each è stato introdotto per rendere più leggibile e meno prono ad errori la scrittura di cicli che utilizzano un Iterator per iterare una collezione; il costrutto for-each è particolarmente indicato poi nel caso di Generics.
Ciao :)
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.