logo

Balíky Java

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:

Výstup JavaPackages' title=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:

PackageInJava1' loading='lazy' title=Štruktúra priečinkov

Prá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

Java
import 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:

Java
package 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:

Java
import 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

Java
package 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

Java
package 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

Java
import 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:

Adresárová štruktúra' loading='lazy' title=

Prístup k modifikátorom v kontexte balíkov

  • Verejné: Členovia spublicmodifiká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 sprivatemodifiká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.