Pytanie: Dlaczego dwóch klas publicznych nie można zdefiniować w jednym zasięgu klasy w języku Java?
A. Po prostu sposób zaprojektowania języka. Gdy się do tego przyzwyczaisz, okaże się, że pomaga to w uporządkowaniu kodu.
Pytanie: Dlaczego klasa B nie może stać się publiczną?
A. Może, ale musi znajdować się w pliku o nazwie B.java. I musi to być jedyna klasa publiczna w tym pliku.
Pytanie: Jak korzystać z zajęć w innych klasach?
A. Być może zechcesz przeformułować pytanie. Istnieje jednak wiele podejść:
- Uczyń klasę publiczną, stwórz instancję i metody połączeń.
- Dodaj klasę do tego samego pliku, nie upublicznij go (nie będziesz w stanie), stwórz instancję i wywołaj metody na tym samym pliku. Będziesz mógł używać go z innych klas w tym samym pliku lub pakiecie. To jest "domyślny" modyfikator dostępu, co oznacza, że będziesz mógł utworzyć instancję tej klasy z innych klas w tym samym pakiecie.
- Ustaw klasę wewnętrzną (lub zagnieżdżoną), stwórz instancję i wywołaj metody na niej. Dostęp do niej będzie możliwy tylko z poziomu jego klasy macierzystej. Ma to zwiększyć enkapsulację i uczynić kod bardziej czytelnym. http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
Q. Czy lepiej zdefiniować go wewnątrz minusy?
A. Ja osobiście nie uważam, że robię to bardzo często. Uważam, że sprawia, że kod nieco bałagan, choć powyższe linki mówią inaczej.
Powodem przechowywania jednej publicznej klasy na plik źródłowy jest szybsze tworzenie kompilacji i wyszukiwanie klas, ponieważ umożliwia to bardziej wydajne wyszukiwanie źródła i kompilowanych plików podczas łączenia (instrukcje importowania), więcej informacji na https: // programmingmitra.blogspot.in/2016/05/Why-Single-Java-Source-File-Can-Not-Have-More-Than-One-public-class.html –