W tym artykule dowiesz się o pakietach i jak ich używać do tworzenia modularnego kodu w Javie.
Pakiet Java
Pakiet to po prostu kontener grupujący powiązane typy (klasy Java, interfejsy, wyliczenia i adnotacje). Na przykład w rdzeniu Java ResultSet
interfejs należy do java.sql
pakietu. Pakiet zawiera wszystkie powiązane typy, które są potrzebne do zapytania SQL i połączenia z bazą danych.
Jeśli chcesz użyć ResultSet
interfejsu w swoim kodzie, po prostu zaimportuj pakiet java.sql (Importowanie pakietów zostanie omówione w dalszej części artykułu).
Jak wspomniano wcześniej, pakiety są po prostu kontenerami dla klas Java, interfejsów i tak dalej. Te pakiety pomagają zarezerwować przestrzeń nazw klas i utworzyć kod, który można konserwować.
Na przykład Date
w Javie można znaleźć dwie klasy. Jednak praktyczna zasada dotycząca programowania w języku Java jest taka, że w projekcie Java dozwolona jest tylko jedna unikalna nazwa klasy.
Jak udało im się uwzględnić dwie klasy o tej samej nazwie Date w JDK?
Było to możliwe, ponieważ te dwie Date
klasy należą do dwóch różnych pakietów:
java.util.Date
- to jest normalna klasa Date, której można używać wszędzie.java.sql.Date
- to jest data SQL używana w zapytaniu SQL i tym podobne.
W zależności od tego, czy pakiet jest zdefiniowany przez użytkownika, czy nie, pakiety są podzielone na dwie kategorie:
Wbudowany pakiet
Pakiety wbudowane to istniejące pakiety Java, które są dostarczane wraz z pakietem JDK. Na przykład java.lang
, java.util
, java.io
, itd. Na przykład:
import java.util.ArrayList; class ArrayListUtilization ( public static void main(String() args) ( ArrayList myList = new ArrayList(3); myList.add(3); myList.add(2); myList.add(1); System.out.println(myList); ) )
Wyjście :
mojaLista = (3, 2, 1)
ArrayList
Klasa należy do java.util package
. Aby z niego skorzystać, musimy najpierw zaimportować pakiet za pomocą import
instrukcji.
import java.util.ArrayList;
Pakiet zdefiniowany przez użytkownika
Java umożliwia również tworzenie pakietów zgodnie z potrzebami. Te pakiety są nazywane pakietami zdefiniowanymi przez użytkownika.
Jak zdefiniować pakiet Java?
Aby zdefiniować pakiet w Javie, użyj słowa kluczowego package
.
package packageName;
Java używa katalogów systemu plików do przechowywania pakietów. Utwórzmy plik Java w innym katalogu.
Na przykład:
└── com └── test └── Test.java
Teraz edytuj plik Test.java i na początku pliku zapisz instrukcję pakietu jako:
pakiet com.test;
Tutaj każda klasa zadeklarowana w katalogu testowym należy do pakietu com.test .
Oto kod:
pakiet com.test; class Test (public static void main (String () args) (System.out.println ("Hello World!");))
Wyjście :
Witaj świecie!
Tutaj klasa Test należy teraz do pakietu com.test .
Konwencja nazewnictwa pakietów
Nazwa pakietu musi być unikalna (jak nazwa domeny). W związku z tym istnieje konwencja tworzenia pakietu jako nazwy domeny, ale w odwrotnej kolejności. Na przykład firma.nazwa.firmy
Tutaj każdy poziom pakietu jest katalogiem w systemie plików. Lubię to:
└── com └── nazwa └── firmy
Nie ma też ograniczeń co do liczby podkatalogów (hierarchii pakietów), które można utworzyć.
Jak stworzyć pakiet w Intellij IDEA?
W IntelliJ IDEA, oto jak możesz stworzyć pakiet:
- Kliknij prawym przyciskiem myszy folder źródłowy.
- Przejdź do nowego, a następnie pakiet .
- Pojawi się wyskakujące okienko, w którym możesz wpisać nazwę pakietu.
Po utworzeniu pakietu w systemie plików zostanie utworzona podobna struktura folderów. Teraz możesz tworzyć klasy, interfejsy i tak dalej w pakiecie.

Jak importować pakiety w Javie?
Java zawiera import
instrukcję, która umożliwia zaimportowanie całego pakietu (jak we wcześniejszych przykładach) lub użycie tylko określonych klas i interfejsów zdefiniowanych w pakiecie.
The general form of import
statement is:
import package.name.ClassName; // To import a certain class only import package.name.* // To import the whole package
For example,
import java.util.Date; // imports only Date class import java.io.*; // imports everything inside java.io package
The import
statement is optional in Java.
If you want to use class/interface from a certain package, you can also use its fully qualified name, which includes its full package hierarchy.
Here is an example to import a package using the import
statement.
import java.util.Date; class MyClass implements Date ( // body )
The same task can be done using the fully qualified name as follows:
class MyClass implements java.util.Date ( //body )
Example: Package and importing package
Suppose, you have defined a package com.programiz that contains a class Helper.
package com.programiz; public class Helper ( public static String getFormattedDollar (double value)( return String.format("$%.2f", value); ) )
Now, you can import Helper class from com.programiz package to your implementation class. Once you import it, the class can be referred directly by its name. Here's how:
import com.programiz.Helper; class UseHelper ( public static void main(String() args) ( double value = 99.5; String formattedValue = Helper.getFormattedDollar(value); System.out.println("formattedValue = " + formattedValue); ) )
Output:
formattedValue = $99.50
Here,
- the Helper class is defined in com.programiz package.
- klasa Helper jest importowana do innego pliku. Plik zawiera klasę UseHelper.
getFormattedDollar()
Metoda klasy Helper jest wywoływana z wewnątrz klasy UseHelper.

W Javie import
instrukcja ta jest zapisywana bezpośrednio po instrukcji pakietu (jeśli istnieje) i przed definicją klasy.
Na przykład,
pakiet nazwa_pakietu; import package.ClassName; // importuj tylko klasę Class MyClass (// body)