KODO STRUKTŪRA
Java paketai ir API
Paketas grupuoja susijusias Java klases panašiai kaip aplankas grupuoja failus. Paketai padeda tvarkingai organizuoti programą, valdyti prieigą ir išvengti vienodų klasių pavadinimų konfliktų.
Kam reikalingi paketai?
- Susijusios klasės laikomos vienoje loginėje vietoje.
- Dviem skirtingų paketų klasėms galima suteikti tokį pat pavadinimą.
- Paketo prieiga leidžia paslėpti vidines programos detales.
- Didelį projektą lengviau prižiūrėti ir plėsti.
Java paketai skirstomi į integruotus Java API paketus ir programuotojo sukurtus paketus.
Kas yra Java API?
Java API yra kartu su Java platforma pateikiama paruoštų klasių ir sąsajų biblioteka. Joje yra priemonių darbui su
| Paketas | Paskirtis | Klasės pavyzdys |
|---|---|---|
java.lang | Pagrindiniai kalbos tipai ir sistemos klasės | String, Math |
java.util | Kolekcijos ir pagalbinės priemonės | ArrayList, Random |
java.time | Datos ir laikas | LocalDate |
java.io | Duomenų įvestis ir išvestis | File |
Klasių importavimas
import instrukcija rašoma po package deklaracijos ir prieš klasę:
import paketas.Klase; // Importuojama viena klasė
import paketas.*; // Importuojamos paketo klasėsŠios dvi eilutės yra bendri importavimo šablonai. Jos tik paaiškina sintaksę ir pačios nieko nevykdo.
importpasako Java, kokią kitame pakete esančią klasę norime naudoti.- Forma
paketas.Klasenurodo vieną konkrečią klasę. - Žvaigždutė
*leidžia naudoti visas tiesiogiai tame pakete esančias klases. - Importas turi būti parašytas prieš klasės deklaraciją.
- Vien importavimas programos rezultato nesukuria – rezultatą gauname tik panaudoję importuotą klasę.
import java.util.* apima java.util klases, bet ne, pavyzdžiui, java.util.concurrent paketo klases.
Integruotos klasės naudojimas
ArrayList yra keičiamo dydžio sąrašas iš java.util paketo:
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList pirkiniai = new ArrayList<>();
pirkiniai.add("Duona");
pirkiniai.add("Pienas");
System.out.println(pirkiniai);
}
}[Duona, Pienas]
import java.util.ArrayListpadaro klasęArrayListprieinamą šiame faile.- Sukuriamas tuščias tekstų sąrašas
pirkiniai. - Metodas
add()pirmiausia įdeda duoną, o tada pieną. println()parodo visą sąrašą laužtiniuose skliaustuose ir išlaiko elementų eilę.- Skirtingai nuo paprasto masyvo,
ArrayListdydis gali augti pridedant naujus elementus.
Kitas API paketas gali suteikti visai kitą funkcionalumą, pavyzdžiui, darbą su datomis:
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate gimtadienis = LocalDate.of(2026, 8, 15);
System.out.println("Gimtadienis: " + gimtadienis);
}
}Gimtadienis: 2026-08-15
LocalDateklasė importuojama išjava.timepaketo.- Metodui
of()perduodami metai2026, mėnuo8ir diena15. - Sukurtas datos objektas išsaugomas kintamajame
gimtadienis. - Java datą parodo įprastu formatu
metai-mėnuo-diena, todėl matome 2026-08-15.
java.lang importuojamas automatiškai
String, System, Math ir kitas java.lang klases galima naudoti be atskiro import. Java šį paketą padaro prieinamą automatiškai.
Savo paketo kūrimas
package deklaracija turi būti pirmoji programinė failo instrukcija:
// Failas: src/lt/pavyzdys/zmones/Asmuo.java
package lt.pavyzdys.zmones;
public class Asmuo {
public String vardas = "Ona";
}Šiame faile tik sukuriama klasė Asmuo. Joje nėra main() ar println(), todėl pati klasė nieko neišveda.
- Failas
Asmuo.javalaikomas aplankuose, atitinkančiuose paketąlt.pavyzdys.zmones. - Pirmoji programinė eilutė paskelbia, kuriam paketui priklauso klasė.
public class Asmuosukuria viešą klasę, kurią galės naudoti ir kiti paketai.- Klasė turi viešą tekstinį lauką
vardas, kuriame saugoma reikšmė Ona.
Paketo pavadinimas paprastai rašomas mažosiomis raidėmis, dažnai naudojant atvirkštinį domeną, pavyzdžiui, lt.pavyzdys.zmones. Aplankų struktūra turi atitikti paketo dalis.
Klasės naudojimas kitame pakete
Kitame pakete esančią viešą klasę reikia importuoti:
// Failas: src/lt/pavyzdys/app/Main.java
package lt.pavyzdys.app;
import lt.pavyzdys.zmones.Asmuo;
public class Main {
public static void main(String[] args) {
Asmuo asmuo = new Asmuo();
System.out.println(asmuo.vardas);
}
}Ona
- Klasė
Mainpriklauso kitam paketui –lt.pavyzdys.app. import lt.pavyzdys.zmones.Asmuonurodo tikslų norimos klasės adresą.- Su
new Asmuo()sukuriamas naujas šios klasės objektas. - Per
asmuo.vardaspasiekiama klasėje įrašyta reikšmė Ona. - Kad tai veiktų, klasė ir iš kito paketo naudojamas jos laukas turi būti pasiekiami, šiuo atveju pažymėti
public.
Pilnas klasės pavadinimas
Vietoje importo galima kiekvieną kartą parašyti visą paketo ir klasės pavadinimą:
public class Main {
public static void main(String[] args) {
java.time.LocalDate data = java.time.LocalDate.of(2026, 8, 15);
System.out.println(data);
}
}2026-08-15
- Šiame faile nėra atskiros
import java.time.LocalDateeilutės. - Vietoje trumpo pavadinimo kiekvieną kartą rašomas pilnas adresas
java.time.LocalDate. - Java tiksliai žino, kurią
LocalDateklasę reikia naudoti. - Rezultatas nesikeičia – konsolėje vis tiek rodoma data 2026-08-15.
Tai naudinga, kai dvi naudojamos klasės turi tokį pat trumpą pavadinimą. Įprastame kode aiškūs pavieniai importai dažniausiai lengviau skaitomi.
Paketų naudojimo gairės
- Grupuok klases pagal atsakomybę arba programos sritį.
- Naudok trumpus, mažosiomis raidėmis rašomus paketų pavadinimus.
- Viešink tik tas klases ir jų narius, kurių reikia kitiems paketams.
- Teik pirmenybę konkrečių klasių importams, kai jie padeda aiškiai matyti priklausomybes.
- Naudodamas API klasę tikrink dabartinės Java versijos oficialią dokumentaciją.

