kapitan bomba napisał(a)
Nie rozumiem tylko jednej rzeczy. W powyższym przykładzie przecież są zadeklarowane 2 obiekty tej samej klasy. Skąd wiadomo do którego obiektu sie odwoływać
public SearchResults getResults() {return new SearchResults();}
SearchWindow sw = new SearchWindow();
Tu nie ma obiektów jednej klasy. Metody getResults() tworzy i zwraca wyniki wyszukiwania poprzez obiekt klasy SearchResults, a w drugie linijce masz tworzony obiekt reprezentujacy okno do pokazywania wynikow.
kapitan bomba napisał(a)
I jeszcze jedno pytanie czy te klasy są zdeklarowane w jednym pliku, czy też mogą być w osobnych plikach lub innych pakietach?
W jednym pliku .java może być tylko jedna klasa publiczna o takiej samej nazwie jak plik. Mogą być dodatkowe klasy o mniejszym zakresie widoczności, ale lepiej tego unikać. Dobrą praktyką jest tworzenie klas w oddzielnych plikach. Jeśli klasy są w takim samym pakiecie można się do nich odwoływać bez dodatkowych zabiegów. Jeśli są w różnych pakietach, to trzeba na górze pliku .java dodać tzw. importy. Np w pliki App.java:
import jakis.pakiet.okno.SearchWindow;
import jakis.inny.pakiet.okno.ResultsWindow;