W dużych projektach może nastąpić taka sytuacja, że dwie klasy będą miały takie same nazwy lub też nazwa Twojej klasy będzie taka sama jak nazwa klasy biblioteki, której używasz. Jeśli chciałbyś w jednej klasie użyć tych dwóch różnych klas o takiej samej nazwie to wtedy musisz je jakoś rozróżnić. Chociaż do jednej się odwoływać za pomocą tzw. "fully qualified name", czyli za pomocą nazwy klasy poprzedzonej pełną ścieżką pakietu, w której ta klasa się znajduje.
Nie jest możliwa deklaracja klasy razem z pełną ścieżką do pakietu, bo nazwa klasy musi być taka sama jak nazwa pliku .java, a to nawet nie jest możliwe, żeby plik .java zawierał kropkę. Specyfikacja Javy na to nie pozwala.
To co możesz zrobic to stworzyć paczkę findarray2 i w tej paczce utworzyć klasę MyFindArray.
Później w kodzie będziesz mógł użyć pełnej nazwy klasy np. tworząc jej obiekt:
findarray2.MyFindArray myArray = new findarray2.MyFindArray();
To jest coś podobnego jak namespace w c++, tyle, że jest to o wiele wygodniejsze, bo można zagnieżdżać paczki w sobie i tworzyć w nich klasy, dzięki czemu mamy klasy uporządkowane w projekcie w odpowiednich "folderach" (paczkach). Np. mozesz stworzyć taką hierarchię paczek w projekcie
- project //ogólna paczka dla projektu, tutaj moze się znajdować np. klasa Main.java
- model // tutaj trzymasz encje (klasy odpowiadające tabelom w bazie danych)
- repository //tutaj mogą być repozytoria (klasy za pomocą, który wykonujesz operacje na db
- services // tutaj serwisy (klasy zawierające logikę aplikacji)
- utils // a tutaj utilsy (klasy udostępniające jakieś statyczne metody pomocnicze)
To jest przykład. Paczki możesz rozważać jako foldery. w których przechowujesz klasy. Dzięki temu mają unikalną przestrzeń nazw i są uporządkowane w taki sposób jaki chcesz. IntelliJ Idea, nawet domyślnie pokazuje je jako foldery.