Paketi v Javi so mehanizem, ki enkapsulira skupino razredov, podpaketov in vmesnikov. Paketi se uporabljajo za:
- Preprečite spore pri poimenovanju tako, da dovolite, da razredi z istim imenom obstajajo v različnih paketih, kot sta college.staff.cse.Employee in college.staff.ee.Employee.
 - Poenostavite organizacijo lociranja in uporabe vmesnikov razredov in drugih komponent.
 - Zagotovite nadzorovan dostop za zaščitene člane, ki so dostopni znotraj istega paketa in po podrazredih. Privzeti člani (brez specifikatorja dostopa) so dostopni samo znotraj istega paketa.
 
Z združevanjem povezanih razredov v pakete Java spodbuja enkapsulacijo podatkov, zaradi česar je koda ponovno uporabna in lažja za upravljanje. Preprosto uvozite želeni razred iz paketa, da ga uporabite v svojem programu.
Ustvarjanje paketov po meri
1. korak: Ustvarite imenik, v katerem bomo ustvarili naše pakete in datoteke Java.
mkdir PROGRAMIRANJE
prednosti in slabosti tehnologije
2. korak: Zdaj spremenite imenik in ustvarite drugo mapo znotraj glavne mape
cd PROGRAMIRANJE
mkdir programiranje Java
cd programiranje Java
polja mkdir
3. korak: Zdaj ustvarite prazno besedilno datoteko in napišite spodnjo kodo Java ter je ne pozabite shraniti z istim imenom kot razred s pripono .java (TwoPointers.java)
Razred 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');  } } 
   
    Opomba:   Ne pozabite dodati imena paketa znotraj programske datoteke.
4. korak: Zdaj zaženite program z definirano potjo do mape
javac srcJavaProgrammingarraysTwoPointers.java
java srcJavaProgrammingarraysTwoPointers.java
Izhod:
Program, ki se izvaja s potjo mapeStruktura mape:
To je vizualna predstavitev paketa po meri v Javi na spodnji sliki. Najprej ustvarimo mapo z imenom Progamming in znotraj nje ustvarimo paket Javaprogramming in nato ustvarimo še en podpaket, ki se imenuje nizi . Nato v njej ustvarimo datoteko razreda Java, ki je prikazana na spodnji sliki:
Struktura mapeDelovanje Java paketov
Struktura imenika: Imena paketov in strukture imenikov so tesno povezani. Na primer, če je ime paketa college.staff.cse, potem so trije imeniki college staff in cse, kjer je cse znotraj osebja in staff znotraj kolegija.
Dogovori o poimenovanju : Imena paketov so zapisana v obratnem vrstnem redu imen domen, npr. org.geeksforgeeks.practice. Na kolidžu je konvencija lahko:
- college.tech.cse
 - college.tech.ee
 - fakulteta.umetnostna zgodovina
 
primer:
java za vrste zank
import java.util.*;
Tu je util podpaket, ustvarjen znotraj paketa java.
Dostop do razredov znotraj paketa
V Javi lahko uvozimo razrede iz paketa na enega od naslednjih načinov:
1. Uvozite določen razred :
import java.util.Vector;
To uvozi samo razred Vector iz paketa java.util.
2. Uvozite vse razrede iz paketa :
import java.util.*;
To uvozi vse razrede in vmesnike iz paketa java.util, vendar ne vključuje podpaketov.
primer: Uvozite razred 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();  } } 
   Izhod
[3 5 7]
Opomba:
- Uporaba uvoznega paketa.*; uvozi vse razrede v paketu, ne pa razredov iz njegovih podpaketov.
 - Če imata dva paketa razrede z enakim imenom (npr. java.util.Date in my.package.Date), uporabite popolnoma kvalificirano ime, da se izognete sporom:
 
import java.util.Date;
import my.package.Date;
Vrste paketov Java
- Vgrajeni paketi
 - Uporabniško določeni paketi
 
1. Vgrajeni paketi
Ti paketi so sestavljeni iz velikega števila razredov, ki so del Jave API .Nekateri pogosto uporabljeni vgrajeni paketi so:
- java.lang : Vsebuje jezikovne podporne razrede (npr. razrede, ki definirajo matematične operacije primitivnih tipov podatkov). Ta paket je samodejno uvožen.
 - java.io: Vsebuje razrede za podporo vhodno/izhodnih operacij.
 - java.util : Vsebuje razrede pripomočkov, ki izvajajo podatkovne strukture, kot je slovar povezanih seznamov in podpora; za operacije datum/čas.
 - java.applet: Vsebuje razrede za ustvarjanje programčkov.
 - java.aut: Vsebuje razrede za implementacijo komponent za grafične uporabniške vmesnike (kot so gumbi; meniji itd.). 6)
 - java.net: Vsebuje razrede za podporo omrežnih operacij.
 
2. Uporabniško določeni paketi
To so paketi, ki jih določi uporabnik.
1. Ustvarite paket:
Najprej ustvarimo imenik myPackage (ime mora biti enako imenu paketa). Nato ustvarite MyClass znotraj imenika, pri čemer je prvi stavek imena paketov.
primer:
Javapackage myPackage; public class MyClass {  public void getNames(String s)  {   System.out.println(s);   } } 
   
    2. Uporabite razred v programu:   
Zdaj bomo uporabili Moj razred razreda v našem programu.
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);  } } 
   
    Opomba:   MyClass.java mora biti shranjena znotraj imenika myPackage, ker je del paketa.  
Statični uvoz v Javo
Statični uvoz v Javi se nanaša na poenostavitev dostopa do statičnih članov in ga ločuje od širše razprave o uporabniško definiranih paketih.
Statični uvoz je funkcija, predstavljena v programskem jeziku Java (različice 5 in novejše), ki omogoča člane (polja in metode), definirane v razredu kot javne statična za uporabo v kodi Java brez navedbe razreda, v katerem je definirano polje.
kontradiktorno iskanje
primer:
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');  } } 
   Izhod
GeeksforGeeks
Obravnava sporov pri imenih
Če dva paketa vsebujeta razred z enakim imenom (npr. java.util.Date in java.sql.Date), navedite celotno ime paketa, da preprečite spore.
import java.util.*;
import java.sql.*;
//In nato uporabite razred Date, potem bomo prejeli napako med prevajanjem:
Današnji datum; //NAPAKA-- java.util.Date ali java.sql.Date?
Prevajalnik ne bo mogel ugotoviti, kateri datumski razred želimo. To težavo je mogoče rešiti z uporabo posebnega uvoznega stavka:
import java.util.Date;
import java.sql.*;
Če potrebujemo oba razreda Date, moramo uporabiti polno ime paketa vsakič, ko deklariramo nov predmet tega razreda. Na primer:
java.util.Date deadLine = nov java.util.Date();
java.sql.Datum danes = nov java.sql.Date();java typeof spremenljivka
Struktura imenika in CLASSPATH
Imena paketov ustrezajo strukturi imenika. Na primer, razred Circle v paketu com.zzz.project1.subproject2 je shranjen kot:
$BASE_DIR/com/zzz/project1/subproject2/Circle.class
- Tukaj $BASE_DIR predstavlja osnovni imenik paketa.
 - 'Pika' v imenu paketa ustreza podimeniku datotečnega sistema.
 - Osnovni imenik ( $BASE_DIR ) se lahko nahaja kjer koli v datotečnem sistemu.
 - Zato morata biti prevajalnik in izvajalno okolje Jave obveščena o lokaciji $BASE_DIR, da lahko poiščeta razrede.
 - To doseže spremenljivka okolja, imenovana CLASSPATH .
 - CLASSPATH je podoben drugi spremenljivki okolja PATH, ki jo uporablja ukazna lupina za iskanje izvedljivih programov.
 
Nastavitev CLASSPATH
CLASSPATH lahko nastavite na enega od naslednjih načinov:
- CLASSPATH lahko trajno nastavite v okolju, kot so koraki v sistemu Windows
 
Pojdite na Nadzorna plošča -> Sistem -> Napredno -> Spremenljivke okolja.
- Izberite 'Sistemske spremenljivke', da uporabite CLASSPATH za vse uporabnike v sistemu.
 - Izberite 'Uporabniške spremenljivke', da jo uporabite samo za trenutno prijavljenega uporabnika.
 - Urejanje ali ustvarjanje CLASSPATH : če CLASSPATH že obstaja, ga izberite in kliknite »Uredi« ali, če ne obstaja, kliknite »Novo«
 - Vnesite podrobnosti CLASSPATH: V polje 'Ime spremenljivke' vnesite: 'CLASSPATH' V polje 'Vrednost spremenljivke' vnesite imenike in datoteke JAR, ločene s podpičji.
 - V polje 'Vrednost spremenljivke' vnesite imenike in datoteke JAR, ločene s podpičji. primer:
 
.c:javaprojectclasses;d:tomcatlibservlet-api.jar
- Pika (
.) predstavlja trenutni delovni imenik. - Če želite preveriti trenutno nastavitev CLASSPATH, izdajte naslednji ukaz:
 
> NASTAVITE POP RAZREDA
CLASSPATH lahko začasno nastavite za določeno lupinsko sejo CMD z izdajo naslednjega ukaza:
> SET CLASSPATH=.;c:javaprojectclasses;d:tomcatlibservlet-api.jar
Namesto spremenljivke okolja CLASSPATH lahko uporabite tudi možnost ukazne vrstice -classpath ali -cp na primer ukazov javac in java
> java –classpath c:javaprojectclasses com.abc.project1.subproject2.MyClass3
Ilustracija uporabniško definiranih paketov: Ustvarjanje našega prvega paketa: Ime datoteke – ClassOne.java
Javapackage package_name; public class ClassOne {  public void methodClassOne()  {  System.out.println('Hello there its ClassOne');  } } 
 Ustvarjanje našega drugega paketa: Ime datoteke – ClassTwo.java
Javapackage package_one; public class ClassTwo {  public void methodClassTwo()  {  System.out.println('Hello there i am ClassTwo');  } } 
 Uporaba obeh ustvarjenih paketov: Ime datoteke – 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();  } } 
 Zdaj si oglejte strukturo imenikov paketov in datoteke testnega razreda:
  
Modifikatorji dostopa v kontekstu paketov
-     Javno:   Člani z
publicmodifikatorji so dostopni od koder koli, ne glede na to, ali je dostopni razred v istem paketu ali ne . - Zaščiteno: Člani z modifikatorjem protected so dostopni znotraj istega paketa v podrazredih
 - Privzeto: Člani brez modifikatorja so dostopni le znotraj istega paketa
 -     Zasebno:   Člani z
privatemodifikatorji so dostopni samo znotraj istega razreda. Do njih ne morejo dostopati razredi v istem podrazredu paketa ali različnih paketih.