javamPokaze || Czym są pakiety w Javie?
🛠️

javamPokaze || Czym są pakiety w Javie?

 
notion image

Czym są pakiety?


W języku Java pakiety są elementem odpowiedzialnym za organizację i grupowanie klas i interfejsów. Pakiet to rodzaj kontenera lub folderu, który zawiera zestaw powiązanych ze sobą klas i interfejsów. Pakiety pomagają w zarządzaniu strukturą programu. Dodatkowo zapobiegają np. konfliktom nazw, w przypadku, kiedy program posiada dwie różne klasy o tej samej nazwie. Takie klasy mogą istnieć jedynie w różnych pakietach.

 
notion image

Organizacja pakietów w Java Standard Library


Pakiety są kluczowym elementem Java Standard Library, oferującym organizację i modularność wśród tysięcy klas i interfejsów. Biblioteki Standarowe Javy są bogate w gotowe pakiety, z których każdy spełnia konkretne zadanie. Kilka kluczowych pakietów obejmuje:

 

1️⃣ java.lang

Automatycznie importowany i kluczowy pakiet w Java Standard Library, zawierający klasy fundamentalne, które są nieodłączną częścią każdego programu Java. W jego skład wchodzą klasy takie jak Object, String czy Thread, które są kluczowe dla programowania w języku Java. Jest to najważniejszy pakiet

2️⃣ java.util

Ten pakiet to skarbnica klas związanych z kolekcjami, datą i czasem, a także narzędziami pomocniczymi do różnych zastosowań. Przykładem jest klasa ArrayList do dynamicznego przechowywania danych w formie listy, czy HashSet do efektywnego zarządzania unikalnymi elementami

3️⃣ java.io

Odpowiada za operacje wejścia/wyjścia, umożliwiając obsługę plików, strumieni danych i serializację. Przykładowo, przy użyciu klasy File możemy manipulować plikami na systemie plików

4️⃣ java.net

Zawiera klasy umożliwiające operacje sieciowe. Działa jako fundament dla tworzenia aplikacji komunikujących się przez sieć, oferując szereg narzędzi, takich jak obsługa protokołów HTTP, gniazd czy URL. Dobrym przykładem jest klasa URL pozwala na łatwe manipulowanie adresami URL, co jest niezbędne w wielu przypadkach operacji sieciowych

 
notion image
 

Korzyści stosowania z pakietów


Korzystanie z pakietów w języku Java stanowi kluczowy element skutecznego projektowania aplikacji. Pakiety przynoszą szereg istotnych korzyści, które wpływają na proces tworzenia, utrzymania i rozwijania oprogramowania:

1️⃣ Organizacja Kodu

Pakiety pomagają w strukturyzowaniu projektów, dzieląc kod na logiczne jednostki. Ułatwia to zarządzanie i utrzymanie dużych aplikacji

2️⃣ Unikanie Konfliktów Nazw

Mechanizm pakietów pozwala na unikanie konfliktów nazw, umożliwiając istnienie klas o tych samych nazwach w różnych pakietach

3️⃣ Modularność

Dzięki pakietom kod staje się bardziej modularny, co ułatwia rozwijanie i testowanie kodu poszczególnych części aplikacji niezależnie

4️⃣ Łatwiejsze Utrzymanie

Koncepcja pakietów sprawia, że projekt staje się bardziej przejrzysty, co ułatwia zrozumienie struktury aplikacji oraz szybsze rozwiązywanie problemów

 
notion image
 

Importowanie pakietów


W Javie każda klasa lub interface należą do jakiegoś pakietu, przykładowo ArrayList możesz znaleść w pakiecie java.util. Aby móc wykorzystać funkcjonalności danej klasy jesteś zobligowany do importu konkretnego pakietu java.utill, w którym rzeczona klasa się znajduje chcesz ArrayList użyć. Taki import możesz wykonać na dwa sposoby:

1️⃣ Importowanie pojedynczej klasy lub interfejsu:

Możemy to wykonać poprzez zastosowanie tzn. kwalifikacji, lub bez niej.

Kwalifikacja oznacza, że wykonujemy import poprzez bezpośrednie odniesienie się do danego pakietu, podczas tworzenia obiektu:

public class Car{ java.util.ArrayList<Integer> sportCars = new java.util.ArrayList<>(); // bezpośrednie odniesienie do pakietu java.util }

Możesz zaimportować pojedynczą klasę lub interfejs bez stosowania kwalifikacji, używając deklaracji import:

import java.util.ArrayList; public class Car{ ArrayList<Car> sportCars = new ArrayList<>(); // wcześniejsza deklaracaja pakietu java.util }
 

2️⃣ Importowanie całego pakietu:

Możesz również zaimportować cały pakiet, co oznacza, że będziesz mógł korzystać z wszystkich klas i interfejsów w tym pakiecie bez konieczności importowania ich pojedynczo konkretnej klasy. Na przykład:

import java.util.*; // import wszystkich klas i interfejsów z pakietu java.util public class Tool{ ArrayList<Integer> hammers = new ArrayList<>(); Map<Integer, String> toolList = new HashMap<>(); }

To importuje wszystkie klasy z pakietu java.util. Chociaż używanie symboli wieloznacznych może skrócić kod, ważne jest świadome podejście do tego, że może to prowadzić do potencjalnych konfliktów nazw i sprawić, że będzie mniej jasne, które klasy są używane w kodzie. Ogólnie uważa się, że dobra praktyka to importowanie tylko tych klas lub interfejsów, których kod potrzebuje. Jednak w mniejszych projektach lub przykładach użycie importów ze znakiem wieloznacznym może być dobrym rozwiązaniem.

 
notion image

Czy wszystkie pakiety trzeba importować?


Odpowiedź na pytanie brzmi: Nie trzeba

Klasy i interfejsy, które są częścią pakietu java.lang nie wymagają importowania, aby z nich korzystać. Są one automatycznie dostępne we wszystkich programach Javy. Obejmuje to takie klasy jak System, String i Math, które są często używane w wielu programach. Dlatego możesz bezpośrednio korzystać z tych klas bez potrzeby dodawania instrukcji import.

public class Test { public static void main(String[] args) { // Użycie System.out.println bez importowania pakietu java.lang.System System.out.println("Hello, World!"); // Użycie String bez importowania pakietu java.lang.String String text = "To jest przykład"; // Użycie Math.random() bez importowania pakietu java.lang.Math double randomValue = Math.random(); } }
notion image
 

Śledź mnie na LinkedIn:


 
 

Zapisz się na mój newsletter:



👋
Popełnianie błędów jest rzeczą naturalną zanim perfekcyjnie opanujemy nowy materiał. Jeśli wyłapałeś jakieś nieprawidłowości w moim tekście, proszę daj mi znać mailowo. Jeśli masz jakieś sugestie lub pytania, proszę napisz do mnie wiadomość: kuba@javampokaze.pl