[ djura1 @ 19.01.2004. 08:37 ] @
Recimo da imam 2 fajla: f1.java i f2.java

u f1.java imam:
Code:

package pack1;

class K{
  public K(){
  ........
  }
  public void f(){
  .........
  }


u f2.java imam:
Code:

import pack1.*;

public class f2{
 public static void main(String[] args){
   K klasa=new K();
 ..........
}
}


Kada kompajliram, dobijem poruku tipa "klasa K u package pack nije deklarisana kao public i ne moze da joj se pristupi". Zanima me zasto je ovo greska ako je konstruktor dekarisan kao public. Da li to znaci da sve klase koje su definisane u jednoma package-u treba da budu public?
[ mucky @ 19.01.2004. 09:07 ] @
Ako ne stavis modifikator public ispred class onda se klasa moze koristiti
samo u istom paketu. Znaci kad bi ti public class f2 bila u paketu pack1 tek
onda bi taj tvoj primer radio.
[ djura1 @ 19.01.2004. 09:23 ] @
Ako je klasa deklarisana kao public, onda mora da se nalazi u fajlu sa istim imenom, (public class Klasa mora da bude u Klasa.java), zar ne? E sad, ako u jednom paketu hocu da definisem vise klasa, onda svaka od njih treba da bude public, sta onda? Kako onda nazvati fajl? Da li je uopste moguce imati vise klasa unutar jednog paketa?
[ filmil @ 19.01.2004. 09:25 ] @
Svaka klasa je u posebnom fajlu. Svi fajlovi koji čine jedan paket u
istom direktorijumu. To rešava problem.

f
[ bunker @ 19.01.2004. 17:42 ] @
Citat:
filmil:
Svaka klasa je u posebnom fajlu...

nastavljam:
svaka klasa koju planiras da koristis van tog paketa... Klase koje ne planiras da upotrebljavas u spoljasnjim paketima mogu biti u istom fajlu kao i naka public klasa (to je cisto stvar pismenosti).
u jednom fajlu je dozvoljena samo jedna public klasa.
[ djura1 @ 20.01.2004. 07:13 ] @
OK, kapiram. Hvala na pomoci.