PDA

View Full Version : [JAVA] creare un package con eclipse


robs05
29-09-2008, 16:40
salve,

stavo facendo delle prove con eclipse per creare un package.

per esempio ho il file ProvaClass.java


class ProvaClass{

attributi.....;
metodi.......;
}

class Class1{

attributi.....;
metodi.......;
}

class Class2{

attributi.....;
metodi.......;
}

class Class3{

attributi.....;
metodi.......;
}



poi ho la classe con il main dove utilizzo queste classi.

assegno un nome al progetto, compilo i file che in automatico si trovano in (default package) e tutto funziona.

poi ho provato a creare un package PackageProva

e ho copiato ProvaClass.java aggiungendo alla prima riga package PackageProva.

poi nella classe che contiene il main ho scritto import PackageProva.*;
compilo e mi da l'errore su ogni oggetto intanziato dicendo che la classe non è public. come devo fare per rendere il package vidibile all'interno di altri progetti?



grazie

banryu79
29-09-2008, 17:33
Dichiara le classi che importi come public.
Ad esempio:

public class ProvaClass{

attributi.....;
metodi.......;
}

robs05
29-09-2008, 17:55
si ci avevo pensato però così

public class ProvaClass{

attributi.....;
metodi.......;
}

public class Class1{

attributi.....;
metodi.......;
}

public class Class2{

attributi.....;
metodi.......;
}

public class Class3{

attributi.....;
metodi.......;
}


il compilatore da errore, non si possono avere più classi public nello stesso file.

71104
29-09-2008, 18:07
ciascuna classe pubblica deve stare in un suo file, anche all'interno dello stesso package.

robs05
29-09-2008, 19:08
quindi come potrei fare?

agente mm8
29-09-2008, 19:15
Metti la ProvaClass in ProvaClass.java, Class1 in Class1.java, ecc.
Semplice, no?:D

robs05
29-09-2008, 19:39
quindi devo per forza creare un file per ogni classe... ?questo è l'unico metodo?

agente mm8
29-09-2008, 19:44
Sì. Perché nn dichiarando pubbliche le classi, le può usare solo la classe nello stesso file e nn la classe Main.

banryu79
30-09-2008, 08:56
Una classe qualificata come "public" deve stare in un file .java il cui nome corrisponde a quello della classe stessa.
Nello stesso file .java poi, puoi anche definire altre classi, purchè non "public".

Una classe dichiarata senza modificatore (come quelle che hai dichiarato nel tuo primo post) ha visibilità di package: è cioè visibile solo all'interno del package in cui è definita. Questo è il modificatore di visibilità di default di una classe, in Java.