Sprievodca balíčkami Java

1. Úvod

V tomto rýchlom výučbe sa budeme venovať základom balíkov v Jave. Uvidíme, ako vytvárať balíčky a pristupovať k typom, ktoré do nich umiestňujeme.

Budeme tiež diskutovať o konvenciách pomenovania a o tom, ako to súvisí s podkladovou adresárovou štruktúrou.

Nakoniec zostavíme a spustíme naše zbalené triedy Java.

2. Prehľad balíkov Java

V Jave sme používajte balíčky na zoskupovanie súvisiacich tried, rozhraní a čiastkových balíkov.

Hlavné výhody tohto postupu sú:

  • Uľahčenie hľadania príbuzných typov - balíčky zvyčajne obsahujú typy, ktoré spolu logicky súvisia
  • Vyhýbanie sa konfliktom názvov - balík nám pomôže jednoznačne určiť triedu; mohli by sme mať napríklad a com.baeldung. Aplikácia, ako aj com.example.Aplikácia triedy
  • Riadenie prístupu - viditeľnosť a prístup k typom môžeme kontrolovať kombináciou balíkov a modifikátorov prístupu

Ďalej sa pozrime, ako môžeme vytvárať a používať balíčky Java.

3. Vytvorenie balíka

Ak chcete vytvoriť balík, musíme použiť balíček pridaním ako úplne prvého riadku kódu v súbore.

Umiestnime typ do balíka s názvom com.baeldung.balíky:

balík com.baeldung.packages;

Dôrazne sa odporúča umiestniť každý nový typ do balíka. Ak definujeme typy a neumiestňujeme ich do balíka, pôjdu do predvolené alebo nemenovaný balík. Používanie predvolených balíkov má niekoľko nevýhod:

  • Strácame výhody štruktúry balíkov a nemôžeme mať čiastkové balíčky
  • Nemôžeme importovať typy v predvolenom balíku z iných balíkov
  • The chránené a balík-súkromné rozsahy prístupu by boli nezmyselné

Ako uvádza špecifikácia jazyka Java, nepomenované balíčky poskytuje platforma Java SE hlavne pre pohodlie pri vývoji malých alebo dočasných aplikácií alebo pri ich začatí.

Preto mali by sme sa vyhnúť používaniu nepomenovaných alebo predvolených balíkov v aplikáciách z reálneho sveta.

3.1. Dohovory o pomenovaní

Aby sme sa vyhli balíkom s rovnakým názvom, dodržiavame niektoré konvencie pomenovania:

  • definujeme náš balíček mená malými písmenami
  • názvy balíkov sú oddelené bodkami
  • mená sú tiež určené spoločnosť alebo organizácia, ktorá ich vytvára

Pri určovaní názvu balíka na základe organizácie zvyčajne začneme obrátením adresy URL spoločnosti. Potom definuje spoločnosť konvenciu pomenovania, ktorá môže obsahovať názvy divízií a názvy projektov.

Napríklad urobiť balíček z www.baeldung.com, obráťme to:

com.baeldung

Potom môžeme ďalej definovať čiastkové balíčky tohto com.baeldung.balíky alebo com.baeldung.balíky.doména.

3.2. Štruktúra adresára

Balíky v Jave zodpovedajú adresárovej štruktúre.

Každý balík a podbalík má svoj vlastný adresár. Takže pre balíček com.baeldung.balíky, mali by sme mať adresárovú štruktúru com -> baeldung -> balíčky.

Väčšina IDE pomôže s vytvorením tejto adresárovej štruktúry na základe názvov našich balíkov, takže ich nemusíme vytvárať ručne.

4. Používanie členov balíka

Začnime definovaním triedy TodoItem v podbalení s názvom doména:

balíček com.baeldung.packages.domain; public class TodoItem {private Long id; popis súkromného reťazca; // štandardné getre a setre}

4.1. Dovoz

Aby bolo možné využiť naše TodoItem triedy z triedy v inom balíku, musíme ju importovať. Po importovaní k nej môžeme získať prístup pomocou názvu.

Môžeme importovať jeden typ z balíka alebo použiť hviezdičku na import všetkých typov v balíku.

Dovezme celú doména podbalenie:

import com.baeldung.packages.domain. *;

Teraz importujme iba TodoItem trieda:

import com.baeldung.packages.domain.TodoItem;

JDK a ďalšie knižnice Java tiež prichádzajú s vlastnými balíkmi. Rovnakým spôsobom môžeme importovať už existujúce triedy, ktoré chceme použiť v našom projekte.

Napríklad importujme jadro Java Zoznam rozhranie a ArrayList trieda:

import java.util.ArrayList; import java.util.List;

Tieto typy potom môžeme v našej aplikácii použiť jednoduchým použitím ich názvu:

verejná trieda TodoList {súkromný zoznam todoItems; public void addTodoItem (TodoItem todoItem) {if (todoItems == null) {todoItems = new ArrayList (); } todoItems.add (todoItem); }}

Tu sme použili naše nové triedy spolu s hlavnými triedami Java na vytvorenie súboru Zoznam z ToDoItems.

4.2. Plne kvalifikované meno

Niekedy možno používame dve triedy s rovnakým názvom z rôznych balíkov. Možno napríklad používame oboje java.sql.Date a java.util.Date. Keď narazíme na konflikty pomenovaní, musíme aspoň pre jednu z tried použiť úplný názov triedy.

Poďme použiť TodoItem s plne kvalifikovaným menom:

verejná trieda TodoList {súkromný zoznam todoItems; public void addTodoItem (com.baeldung.packages.domain.TodoItem todoItem) {if (todoItems == null) {todoItems = new ArrayList (); } todoItems.add (todoItem); } // štandardní zakladatelia a zakladatelia}

5. Zostavovanie s javac

Keď je čas zostaviť naše zbalené triedy, musíme si pamätať našu adresárovú štruktúru. Začíname v zdrojovom priečinku, musíme to povedať javac kde nájdeme naše súbory.

Musíme zostaviť naše TodoItem trieda prvá, pretože naša Zoznam úloh trieda závisí od toho.

Začnime otvorením príkazového riadku alebo terminálu a prechodom do nášho zdrojového adresára.

Poďme si teda zostaviť náš com.baeldung.packages.domain.TodoItem trieda:

> javac com / baeldung / balíčky / doména / TodoItem.java

Ak sa naša trieda zostaví čisto, neuvidíme žiadne chybové správy a súbor TodoItem.class by sa mali objaviť v našom com / baeldung / balíčky / doména adresár.

Pre typy, ktoré odkazujú na typy v iných balíkoch, by sme mali používať -classpath vlajka povedať javac príkaz kde nájdem ďalšie zostavené triedy.

Teraz, keď naše TodoItem trieda je zostavená, môžeme zostaviť našu Zoznam úloh a TodoApp triedy:

> javac -classpath. com / baeldung / packages / *. java

Opäť by sme nemali vidieť žiadne chybové správy a v našom by sme mali nájsť dva súbory triedy com / baeldung / balíčky adresár.

Spustime našu aplikáciu pomocou plne kvalifikovaného názvu našej TodoApp trieda:

> java com.baeldung.packages.TodoApp

Náš výstup by mal vyzerať takto:

6. Záver

V tomto krátkom článku sme sa dozvedeli, čo je balíček a prečo by sme ich mali používať.

Diskutovali sme o konvenciách pomenovania a o tom, ako balíky súvisia s adresárovou štruktúrou. Tiež sme videli, ako vytvárať a používať balíčky.

Nakoniec sme si prešli, ako zostaviť a spustiť aplikáciu s balíčkami pomocou javac a java príkazy.

Celý príklad kódu je k dispozícii na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found