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.
Javapackage 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.