pakiety, interfejs jak to sie obsługuje, początkujący

0

man taki kod
http://www.drakodenaturat.republika.pl/drako/jav.html

chcialem wydzielić pakiet, klase z main zostawić w pakiecie globalnym
a interfejs "IfKol" i pozostałe klasy umieścić w pakiecie zrobiłem tak:

package QPack;
public interface IfKol
{
    public void put(char z);
    public char get();
    public void reset();
    public int a=3;
}
class dane
{
    ..............
}
class tool extends dane
{
    ..............
}
class KolK extends tool implements IfKol//kol krazaca
{
    public char get()
    {
          ..................
    }
        public void put()
        {
              ...........
        }
    public void reset()
    {
        ...........
    }
}
class KolKD extends KolK implements IfKol
{
    void extend()//zwiększenie kolejiki o 5 komuek
    {
        ......................
    }
    public void put(char z)
    {   
        ........................
    }
}

i drugi plik:

import QPack.*;
class Kolejki
{
    public static void main(String args[])
    {
        KolK k2=new KolK();
        KolKD k4=new KolKD();
        IfKol ik;

        ik=k2;
        for(int i=-2;i<12;i++)
        {
                     ble ble ble
        }
    }
}

Jak sie spodziewacie nie działa, wyświetla że nie mam dostępu do interfejsu IfKol

0

muszisz w panel stererowania -> System -> zaawansowane -> zmienne srodowiskowe podac sciezke do tego pakietu w zmiennej CLASSPATH jesli podasz np. C:\pakiety to bedziesz to bedziesz mogl umieszczac kalsy w tym pakiecie 'package pakiety' i w jego podpakietach np. package pakiety.pakiet1;

0

chyba tego nie potrzeba, kompilator wie ze maszukać klasa w katalogu o nazwie pakietu.
a oba pliki są kompilowane z tego samego miejsca wiec pliki sie znajdują

bład jest w skaldni, coś z prawami dostępu

chciałem dać pozostałe klasy w pierwzym pliku jako public, ale wypisało że tak nie może być bo plik musie mieć wtedy nazwe tej klasy która jest public.
wieć jak z tego drugiego pliku bede miał dostęp do klas które nie są public

dlaczego nie mam dostępu do interfwejsu, przecież on jes public

0

tu są konkterne 2 pliki tylko skompilowac

jeśli ktomuś sie nudzi to prosze o pomoc

1.interfejs i jakieś klasy do niego:
http://drakodenaturat.republika.pl/ifkol.java

2.metoda mian która uruchamia interfejs i klasy
http://drakodenaturat.republika.pl/qdemo.java

dziwne jest bo komilator zgłasza błąd przy dostępie do interfejsu, że nie ma niby do niego dostępu

a nie zgłasza błądu przy dostępie do innych klas które powinne być nie dostępne bo nie są public

0

żeby uzyskać dostęp do klasy musi być ona public
jak to możliwe że w jednym pliku ma być kilka klas zadeklarowanych jako public, przceiż to sie nie skompulije bo plik musi sie nazywać tak jak nazwa klasy public
sprzeczność

chyba ze każda klasa edzie w odzielnym pliku ale to byłby chba masochizm

czy ktoś to forum odwiedza?

0

skompilowałem każdą klase w odzielnym pliku,
ustawiłem dostęp public wszędzie
ale metoda main dalej nie działa : "can not access to KolL.java"

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0