AppletTalk.com Forum Index AppletTalk.com
Java discussions newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Array di classi...

 
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java (Italian)
View previous topic :: View next topic  
Author Message
marinheiro
Guest





PostPosted: Wed Sep 21, 2005 11:07 am    Post subject: Array di classi... Reply with quote



Oi!

Premetto che sono un neofita di java.
Detto ciò, tra le tante cose che non so, c'è qualcosa che non mi è
chiaro negli array di classi in java, o forse sulle classi
innestate... Smile.
o meglio, a me sembra essere tutto chiaro, ma niente funzionante :)

infatti, ho la mia classe principale:

public class newworld {

public static void main (String args[]){

World mondo = new World(4);

Quote:
mondo.zones[0].nord = 1;
System.out.println(mondo.zones[0].nord);
}

}

che al momento di compilazione mi dà
cannot find symbol alla riga >>> riguardo la variabile zone.

la classe world ha questa definizione:

class World {

int numzones;

World(int numreq) {

numzones = numreq;
public zona zones[]=new zona[numreq];

}

}

mentre la classe zona ha quattro int (nord sud ovest est)
inizializzati a 0.

qual è il problema di settare classi all'interno di altre classi?
Scusatemi se è una domanda banale ma non ho trovato risposta altrove,
grazie mille in anticipo,

Axé!



Back to top
riccardo_at@email.it
Guest





PostPosted: Wed Sep 21, 2005 11:41 am    Post subject: Re: Array di classi... Reply with quote



Il problema e' che tu non stai usando una inner class ("classe
innestata")
Con inner class si intende una classe che viene DEFINITA dentro un'
altra
classe, non una classe che viene usata all'interno del costruttore di
un 'altra classe,
come nel tuo caso.
Guarda bene cosa hai scritto:

class World {

int numzones;

World(int numreq) {

numzones = numreq;
public zona zones[]=new zona[numreq]; <<<<-----ORRORE

}

}

tu stai cercando di creare una variabile pubblica di classe all interno
del costruttore!
Le variabili di classe vanno dichiarate FUORI dal costruttore (come hai
fatto per numzones). Infatti non capisco come il tuo codice possa
compilare.. e' illegale
dare un modificatore di accesso come public a una variabile locale
definita nel costruttore o in una funzione. Ma anche togliendo public,
tu hai definito un bellissimo array di zones che esiste SOLO durante l
esecuzione del costruttore e poi.. puff!
E non e' certo una variabile di classe.. ecco perche java si incazza
quando cerchi di
raggiungere modo.zones

Credo che tu abbia le idee ancora un p' troppo vaghe per buttarti a
creare un mud
(e quello che stai cercando di fare , vero?) Ti consiglio di dare una
bella letta a un testo
Java prima di tentare il "fai da te" Wink Scegli un libro di Hosrtmann o
di Horton, o "thinking in java" di Eckel (che ti puoi scaricare dalla
rete aggrattis!)
in bocca al lupo!

Back to top
Alex
Guest





PostPosted: Wed Sep 21, 2005 11:43 am    Post subject: Re: Array di classi... Reply with quote



"zona" è una classe, così "zones" è un array d'oggetti

quindi per ogni elemento dell'array devi chiamare il costruttore della
classe...

e comunque non capisco bene il codice tagliato, l'oggetto zona è
dichiarato all'interno del costruttore? In questo modo non ha
visibilità all'esterno, dovresti metterlo dove dichiari numzones
(ovvero negli attributi della classe)

Infine guarda l'incapsulamento perchè questo modo di accedere agli
attributi di una classe è sconsigliato!!

Ciaoo

Back to top
marinheiro
Guest





PostPosted: Wed Sep 21, 2005 1:25 pm    Post subject: Re: Array di classi... Reply with quote

On 21 Sep 2005 04:41:34 -0700, [email]riccardo_at (AT) email (DOT) it[/email] wrote:

Quote:
tu stai cercando di creare una variabile pubblica di classe all interno
del costruttore!
Le variabili di classe vanno dichiarate FUORI dal costruttore (come hai
fatto per numzones). Infatti non capisco come il tuo codice possa
compilare..

ah beh Smile
Grazie in primis della risposta mi rendo conto che è difficile
rispondere a qualcuno con così poca coscienza della cosa :D

Quote:
e' illegale
dare un modificatore di accesso come public a una variabile locale
definita nel costruttore o in una funzione. Ma anche togliendo public,
tu hai definito un bellissimo array di zones che esiste SOLO durante l
esecuzione del costruttore e poi.. puff!
E non e' certo una variabile di classe.. ecco perche java si incazza
quando cerchi di
raggiungere modo.zones


si, giusto.
Quindi in teoria dovrei definire la classe zona nella classe world.
Ok.
Però a me serve un array di zona.
Come faccio a crearlo? Voglio dire, come avevo fatto prima alla
creazione di 'mondo' passavo a mondo un parametro che definisce il
numero di zone in base al quale questo creava l'array di zone.
Adesso come faccio? Passo a mondo un parametro che a sua volta sarà
passato a zones?

Quote:
Credo che tu abbia le idee ancora un p' troppo vaghe per buttarti a
creare un mud (e quello che stai cercando di fare , vero?)

No, a dire il vero no, è che solo stavo facendo un pò di esercizi
varii e mi era venuta in mente 'sta cosa. Penso che potrei fare
ugualmente togliendo proprio la classe mondo, ma così sarebbe troppo
semplice :D

Ti consiglio di dare una
Quote:
bella letta a un testo
Java prima di tentare il "fai da te" Wink Scegli un libro di Hosrtmann o
di Horton, o "thinking in java" di Eckel (che ti puoi scaricare dalla
rete aggrattis!)
in bocca al lupo!

Grazie. Ho già preso qualche testo, li sto studiando, lo so che
procedere a tentoni è impossibile :)

Axé!

Back to top
pioneer@inwind.it
Guest





PostPosted: Wed Sep 21, 2005 3:03 pm    Post subject: Re: Array di classi... Reply with quote

Basta fare così.

class World {

int numzones;
public zona zones[];

World(int numreq) {

numzones = numreq;
zones[]=new zona[numreq];

}

}

Back to top
riccardo_at@email.it
Guest





PostPosted: Fri Sep 23, 2005 12:30 pm    Post subject: Re: Array di classi... Reply with quote

class World {

int numzones;
public zona zones[];

World(int numreq) {

numzones = numreq;
zones[]=new zona[numreq]; // questi sono solo puntatori i a null al
momento

}
}

Gisto, okkio Axe' pero' al fatto che con zoes[] = new zona[numreq] non
hai un array di
zone, ma un array di puntatori a zone che al mmento della craezione non
puntano a un fico secco (cioe' null) .

Back to top
Display posts from previous:   
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.