Balíky v jazyku Java sú mechanizmus, ktorý zapuzdruje skupinu čiastkových balíkov tried a rozhraní. Balíky sa používajú na:
- Predchádzajte konfliktom názvov tým, že triedam s rovnakým názvom umožníte existovať v rôznych balíkoch, ako napríklad college.staff.cse.Employee a college.staff.ee.Employee.
 - Uľahčite si organizáciu, nájdite a používajte rozhrania tried a ďalšie komponenty.
 - Poskytnite riadený prístup pre chránených členov, ktorí sú prístupní v rámci toho istého balíka a podľa podtried. Predvolené členy (bez špecifikátora prístupu) sú prístupné iba v rámci toho istého balíka.
 
Zoskupením súvisiacich tried do balíkov Java podporuje zapuzdrenie údajov, vďaka čomu je kód opakovane použiteľný a ľahšie spravovateľný. Jednoducho importujte požadovanú triedu z balíka, aby ste ju mohli použiť vo svojom programe.
Vytváranie vlastných balíčkov
Krok 1: Vytvorte si adresár, v ktorom vytvoríme naše balíčky a Java súbory.
mkdir PROGRAMOVANIE
plná forma i d e
Krok 2: Teraz zmeňte adresár a vytvorte ďalší priečinok v hlavnom priečinku
PROGRAMOVANIE CD
mkdir JavaProgramming
cd JavaProgramming
polia mkdir
Krok 3: Teraz vytvorte prázdny textový súbor a napíšte nižšie uvedený kód Java a nezabudnite ho uložiť s rovnakým názvom ako trieda s príponou .java (TwoPointers.java)
Trieda TwoPointers.
Java
package JavaProgramming.arrays; // Main class present inside the package  public class TwoPointers {  public static void main(String[] args) {  System.out.println('Inside the package');  } } 
   
    Poznámka:   Do súboru programu nezabudnite pridať názov balíka.
Krok 4: Teraz spustite program s definovanou cestou k priečinku
javac srcJavaProgrammingarraysTwoPointers.java
java srcJavaProgrammingarraysTwoPointers.java
výstup:
Spustený program s cestou k priečinkuŠtruktúra priečinka:
Toto je vizuálna reprezentácia vlastného balíka v jazyku Java na obrázku nižšie. Najprv vytvoríme priečinok s názvom Progamming a v ňom vytvoríme balík Javaprogramming a potom vytvoríme ďalší podbalík, ktorý sa nazýva polia . Potom v ňom vytvoríme súbor triedy Java, ktorý je znázornený na obrázku nižšie:
Štruktúra priečinkovPráca s balíkmi Java
Adresárová štruktúra: Názvy balíkov a adresárové štruktúry spolu úzko súvisia. Ak je napríklad názov balíka college.staff.cse, potom tri adresáre sú zamestnanci školy a cse, kde cse je vnútri zamestnancov a zamestnanci sú vo vnútri školy.
Konvencie pomenovania : Názvy balíkov sa píšu v opačnom poradí ako názvy domén, napr. org.geeksforgeeks.prax. Na vysokej škole môže byť dohovor:
- college.tech.cse
 - college.tech.ee
 - vysoká škola.historia umenia
 
Príklad:
import java.util.*;
Tu je util čiastkový balík vytvorený v balíku java.
Prístup k triedam v balíku
V jazyku Java môžeme importovať triedy z balíka pomocou jednej z nasledujúcich metód:
misia nemožné všetky filmy
1. Importujte konkrétnu triedu :
import java.util.Vector;
Toto importuje iba triedu Vector z balíka java.util.
2. Importujte všetky triedy z balíka :
import java.util.*;
Toto importuje všetky triedy a rozhrania z balíka java.util, ale nezahŕňa podbalíky.
Príklad: Importujte triedu Vector
Javaimport java.util.Vector; public class Geeks {    public Geeks() {    // java.util.Vector is imported We are able to access it directly in our code.  Vector v = new Vector();    java.util.ArrayList l = new java.util.ArrayList();  l.add(3);  l.add(5);  l.add(7);    System.out.println(l);  }  public static void main(String[] args) {      new Geeks();  } } 
   Výstup
[3 5 7]
Poznámka:
- Použitie importného balíka.*; importuje všetky triedy v balíku, ale nie triedy z jeho pod balíkov.
 - Ak majú dva balíky triedy s rovnakým názvom (napr. java.util.Date a my.package.Date), použite plne kvalifikovaný názov, aby ste sa vyhli konfliktom:
 
import java.util.Date;
importovať môj.balík.Dátum;
Typy balíkov Java
- Vstavané balíčky
 - Používateľom definované balíky
 
1. Vstavané balíčky
Tieto balíky pozostávajú z veľkého počtu tried, ktoré sú súčasťou Java API Niektoré z bežne používaných vstavaných balíkov sú:
- java.lang : Obsahuje triedy jazykovej podpory (napr. triedy, ktoré definujú primitívne dátové typy matematických operácií). Tento balík sa importuje automaticky.
 - java.io: Obsahuje triedy na podporu vstupných/výstupných operácií.
 - java.util : Obsahuje pomocné triedy, ktoré implementujú dátové štruktúry ako Linked List Dictionary a podporu; pre operácie dátumu/času.
 - java.applet: Obsahuje triedy na vytváranie apletov.
 - java.aut: Obsahujú triedy na implementáciu komponentov pre grafické užívateľské rozhrania (ako tlačidlo, menu atď.). 6)
 - java.net: Obsahuje triedy na podporu sieťových operácií.
 
2. Balíky definované používateľom
Toto sú balíky, ktoré definuje používateľ.
1. Vytvorte balík:
Najprv vytvoríme adresár myPackage (názov by mal byť rovnaký ako názov balíka). Potom v adresári vytvorte MyClass, pričom prvým príkazom sú názvy balíkov.
Príklad:
Javapackage myPackage; public class MyClass {  public void getNames(String s)  {   System.out.println(s);   } } 
   
    2. Použite triedu v programe:   
plsql
Teraz použijeme MojaTrieda triedy v našom programe.
Java import myPackage.MyClass; public class Geeks {  public static void main(String args[]) {     // Initializing the String variable with a value   String s = 'GeeksforGeeks';    // Creating an instance of class MyClass in the package.  MyClass o = new MyClass();    o.getNames(s);  } } 
   
    Poznámka:   MyClass.java musí byť uložená v adresári myPackage, pretože je súčasťou balíka.  
Statický import v jazyku Java
Statický import v jazyku Java je o zjednodušení prístupu k statickým členom a oddeľuje ho od širšej diskusie o balíkoch definovaných používateľom.
Statický import je funkcia zavedená v programovacom jazyku Java (verzie 5 a vyššie), ktorá umožňuje členom (poliam a metódam) definovať v triede ako verejné statické na použitie v kóde Java bez určenia triedy, v ktorej je pole definované.
Príklad:
Javaimport static java.lang.System.*; class Geeks {  public static void main(String args[]) {    // We don't need to use 'System.out' as imported using static.  out.println('GeeksforGeeks');  } } 
   Výstup
GeeksforGeeks
Riešenie konfliktov mien
Ak dva balíky obsahujú triedu s rovnakým názvom (napr. java.util.Date a java.sql.Date), zadajte úplný názov balíka, aby ste sa vyhli konfliktom.
import java.util.*;
import java.sql.*;
//A potom použite triedu Date, potom dostaneme chybu pri kompilácii:
Dátum dnes; //CHYBA-- java.util.Date alebo java.sql.Date?
Kompilátor nebude schopný zistiť, ktorú triedu Date chceme. Tento problém je možné vyriešiť použitím špecifického príkazu na import:
import java.util.Date;
import java.sql.*;
Ak potrebujeme obe triedy Date, potom musíme použiť úplný názov balíka zakaždým, keď deklarujeme nový objekt tejto triedy. Napríklad:
java.util.Date deadLine = new java.util.Date();
java.sql.Date today = new java.sql.Date();aký veľký je tento monitor
Štruktúra adresára a CLASSPATH
Názvy balíkov zodpovedajú adresárovej štruktúre. Napríklad trieda Circle v balíku com.zzz.project1.subproject2 je uložená ako:
$BASE_DIR/com/zzz/project1/subproject2/Circle.class
- Tu $BASE_DIR predstavuje základný adresár balíka.
 - Bodka v názve balíka zodpovedá podadresáru súborového systému.
 - Základný adresár ( $BASE_DIR ) sa môže nachádzať kdekoľvek v systéme súborov.
 - Preto kompilátor Java a runtime musia byť informované o umiestnení $BASE_DIR, aby bolo možné nájsť triedy.
 - Dosahuje sa to premennou prostredia tzv CLASSPATH .
 - CLASSPATH je podobná inej premennej prostredia PATH, ktorú používa príkazový shell na vyhľadávanie spustiteľných programov.
 
Nastavenie CLASSPATH
CLASSPATH je možné nastaviť ktorýmkoľvek z nasledujúcich spôsobov:
- CLASSPATH je možné nastaviť natrvalo v prostredí, ako je to vo Windows
 
Prejdite na Ovládací panel -> Systém -> Rozšírené -> Premenné prostredia.
- Ak chcete použiť CLASSPATH pre všetkých používateľov v systéme, vyberte 'System Variables'.
 - Ak chcete použiť len pre aktuálne prihláseného používateľa, vyberte položku Používateľské premenné.
 - Upraviť alebo vytvoriť CLASSPATH: Ak už CLASSPATH existuje, vyberte ho a kliknite na „Upraviť“ alebo ak neexistuje, kliknite na „Nový“
 - Zadajte podrobnosti CLASSPATH: Do poľa 'Názov premennej' zadajte: 'CLASSPATH' Do poľa 'Hodnota premennej' zadajte adresáre a súbory JAR oddelené bodkočiarkou.
 - Do poľa „Hodnota premennej“ zadajte adresáre a súbory JAR oddelené bodkočiarkou. Príklad:
 
.c:javaprojectclasses;d:tomcatlibservlet-api.jar
- Bodka (
.) predstavuje aktuálny pracovný adresár. - Ak chcete skontrolovať aktuálne nastavenie CLASSPATH, zadajte nasledujúci príkaz:
 
> NASTAVIŤ TRIEDU
CLASSPATH je možné dočasne nastaviť pre túto konkrétnu reláciu shellu CMD zadaním nasledujúceho príkazu:
> SET CLASSPATH=.;c:javaprojectclasses;d:tomcatlibservlet-api.jar
Namiesto použitia premennej prostredia CLASSPATH môžete použiť napríklad aj voľbu príkazového riadka -classpath alebo -cp príkazov javac a java
> java –classpath c:javaprojectclasses com.abc.project1.subproject2.MyClass3
Ilustrácia užívateľom definovaných balíkov: Vytvárame náš prvý balík: Názov súboru – ClassOne.java
Javapackage package_name; public class ClassOne {  public void methodClassOne()  {  System.out.println('Hello there its ClassOne');  } } 
 Vytvárame náš druhý balík: Názov súboru – ClassTwo.java
Javapackage package_one; public class ClassTwo {  public void methodClassTwo()  {  System.out.println('Hello there i am ClassTwo');  } } 
 Využitie oboch vytvorených balíkov: Názov súboru – Testing.java
Javaimport package_name.ClassOne; import package_one.ClassTwo; public class Testing {  public static void main(String[] args)  {  ClassTwo a = new ClassTwo();  ClassOne b = new ClassOne();  a.methodClassTwo();  b.methodClassOne();  } } 
 Teraz sa pozrite na adresárovú štruktúru balíkov a súboru testovacej triedy:
  
Prístup k modifikátorom v kontexte balíkov
-     Verejné:   Členovia s
publicmodifikátor sú prístupné odkiaľkoľvek bez ohľadu na to, či je pristupujúca trieda v rovnakom balíku alebo nie . - Chránené: Členovia s chráneným modifikátorom sú prístupní v rámci toho istého balíka v podtriedach
 - Predvolená hodnota: Členovia bez modifikátora sú prístupní iba v rámci toho istého balíka
 -     Súkromné:   Členovia s
privatemodifikátor sú prístupné iba v rámci rovnakej triedy. Nemôžu k nim pristupovať triedy v rovnakých podtriedach balíkov alebo rôznych balíkov.