Gdy piszesz kod w języku Java, niemalże zawsze pojawia się na górze słowo kluczowe "import". Choć można bez problemu się domyślić co to robi 😁, to warto się zatrzymać przy nim na dłużej i opowiedzieć na tyle, żeby powstał z tego artykuł 😄.
"IMPORT" W JĘZYKU JAVA TEŻ ZASŁUGUJE NA WYJAŚNIENIA
Po haśle stwierdzamy natychmiastowo, że chodzi o instrukcję importu i to jest prawidłowe myślenie. Konkretniej jednak, to dyrektywa pozwalająca na skrócenie odwoływania się do danych składowych i metod spoza pakietu jaki jest zawsze importowany: "java.lang", a także naszego pakietu, w jakim znajduje się klasa, na której pracujemy.
Wciąż możemy jak najbardziej odwoływać się do całej reszty elementów bez instrukcji importu, tylko trzeba wtedy wpisywać cały ciąg pakietu:
java. io.File file = new java. io.File("file.txt");
Właśnie po to u góry stosuje się "import" w języku Java:
import java. io.*;
Ta forma pozwala na użycie skróconego zapisu wszystkiego co dotyczy pakietu "java.io". Można też napisać tak:
import java. io.File;
żeby skrócić tylko "File". Obojętnie jaki zapis, to Ci umożliwia napisać tak:
File file = new File("file.txt");
Jest tu programista w języku C++? To jest odpowiednik słowa kluczowego "using" 😉.
KONFLIKT IMPORTÓW
Używając importów może dojść do sytuacji, że w dwóch różnych miejscach jest klasa o tej samej nazwie (dla przykładu niech to będzie "Point"), a instrukcja "import" w języku Java skraca i w tym, i w tym miejscu:
import packageA.*;
import packageB.*;
Gdy wtedy spróbujemy się powołać na nią:
Point point = new Point(4, 7);
kompilator zgłosi błąd, bo nie wie jak ma rozróżnić klasę "Point" w jednym pakiecie, od klasy "Point" w drugim pakiecie. Wtedy mamy dwa wyjścia - albo doprecyzować w miejscu definiowania zmiennej (najlepiej stosować, gdy w klasie są potrzebne obie te klasy):
packageA.Point point = new packageA.Point(4, 7);
albo doprecyzować w instrukcji importu:
import packageA.*;
import packageB.*;
import packageA.Point;
Ten sposób radzę stosować gdy jesteśmy pewni, że w całej klasie będziemy korzystać z klasy "Point" z pakietu "packageA".
IMPORT STATYCZNY
Jest też drugi "sposób" importowania. Jeżeli do "import" w języku Java dorzucisz słowo "static" i przykładowo taki oto zapis:
import static java. lang.Math.*;
będziesz mógł/mogła wywoływać bezpośrednio metody matematyczne z klasy "Math", tak jakby znajdowały się one w tej samej klasie:
System.out.println(random());
zamiast:
System.out.println(Math.random());
Ma to swoje plusy i minusy. Import statyczny został szerzej opisany parę lat temu w jednym z innych artykułów.
Słowo kluczowe "import" to dyrektywa, która służy skracaniu odwoływania się do klas spoza pakietu, w jakim się znajdujemy. W połączeniu ze słowem "static", możesz bezpośrednio powoływać się na metody statyczne z innych klas, jakby podchodziły od tej samej!
Tyle? No tak 😎! Tyle razy widzisz "import" w języku Java i właśnie dlatego trzeba było to sobie wyjaśnić, abyś pisał(a) w sposób bardziej uświadomiony 😀!