Java package (paket)

Java package (paket)

Java package (paket) je grupa sličnih tipova klasa, interfejsa i pod-paketa.

Paket u javi može biti kategorisan u dve forme, ugrađeni paket i korisnički definisani paket.

Postoje mnogi ugrađeni paketi kao što su java, lang, awt, javax, swing, net, io, util, sql itd.

Ovde, detaljno ćemo razmotriti kreiranje i upotrebu korisnički definisanih paketa.
Prednosti Java paketa
1) Java paket se koristi da kategoriše klase i interfejse tako da se oni mogu lakše održavati.
2) Java paket obezbeđuje zaštitu pristupa.
3) Java paket otklanja kolizije u imenima.

Jednostavan primer Java paketa
Ključna reč package se koristi za kreiranje paketa u Javi.

1
2
3
4
5
6
7
//sačuvano kao Simple.java 
package mypack; 
public class Simple{ 
 public static void main(String args[]){ 
    System.out.println("Welcome to package"); 
   
}

Kako pristupiti paketu iz drugog paketa?

Postoje tri načina za pristup paketu izvan paketa.

  1. import package.*;
  2. import package.classname;
  3. puno kvalifikovano ime.

1) Pomoću packagename.*

Ako koristimo package.* tada će sve klase i interfejsi ovog paketa biti dostupni ali ne i podpaketi.
Ključna reč import se koristi da učini klase i interfejse drugog paketa dostupnim tekućem paketu.
Primer paketa koji importuje packagename.*

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//sačuvano od A.java 
  
package pack; 
public class A{ 
  public void msg(){System.out.println("Hello");} 
}
 
//sačuvano od B.java 
  
package mypack; 
import pack.*; 
  
class B{ 
  public static void main(String args[]){ 
   A obj = new A(); 
   obj.msg(); 
  
}
Ispis na ekranu:
Hello

2) Pomoću packagename.classname
Ako importujemo package.classname tada će samo deklarisana klasa ovog paketa biti dostupna.
Primer paketa pomoću import package.classname

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    //sačuvano od A.java 
      
    package pack; 
    public class A{ 
      public void msg(){System.out.println("Hello");} 
    
 
    //sačuvano od B.java 
      
    package mypack; 
    import pack.A; 
      
    class B{ 
      public static void main(String args[]){ 
       A obj = new A(); 
       obj.msg(); 
      
    }
Ispis na ekranu:
Hello

3) Pomoću punog kvalifikovanog imena
Ako koristimo puno kvalifikovano ime, tada će samo deklarisana klasa ovog paketa biti dostupna. Ovde nema potrebe za importom. Ali zato je potrebno koristiti puno kvalifikovano ime svaki put kada se pristupa klasi ili interfejsu.
Ovo se obično koristi kada dva paketa imaju isto ime klase npr. java.util i java.sql paket sadrže Date klasu.
Primer paketa gde se koristi puno kvalifikovano ime:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    //sačuvano od A.java 
      
    package pack; 
    public class A{ 
      public void msg(){System.out.println("Hello");} 
    
 
    //sačuvano od B.java 
      
    package mypack; 
    class B{ 
      public static void main(String args[]){ 
       pack.A obj = new pack.A(); //korištenje punog kvalifikovanog imena
       obj.msg(); 
      
    }
Ispis na ekranu:
Hello

Napomena 1: Ako importujemo paket, podpaketi neće biti importovani.
Ako importujemo paket, sve klase i interfejsi tog paketa će biti importovani izuzimajući klase i interfejse podpaketa. Dakle, potrebno je takođe importovati i podpakete.

Napomena 2: Sekvenca programa mora biti paket zatim import zatim klasa.

Podpaket (subpackage) u javi
Paket unutar paketa se naziva podpaket (subpackage). On se kreira kada treba dalje kategorizovati paket.
Pogledajmo primer, Sun Microsystem je definisao paket pod imenom java koji sadrži mnoge klase kao što su System, String, Reader, Writer, Socket itd. Ove klase predstavljaju određenu grupu napr. Reader i Writer klase služe za ulazno/izlazne operacije, Socket i ServerSocket klase su za umrežavanje itd. Tako, Sun je podkategorizovao java paket u podpakete kao što su lang, net, io itd. i stavio klase koje se odnose na ulaz/izlaz u io paket, Server i ServerSocket klase u net pakete itd.
Standard u definisanju paketa je domain.company.package
Primer podpaketa

1
2
3
4
5
6
7
8
package com.company.core; 
class Simple{ 
  public static void main(String args[]){ 
   System.out.println("Hello subpackage"); 
  
}
Ispis na ekranu:
Hello subpackage

Pravilo: Može biti samo jedna public klasa u java source fajlu i mora biti sačuvana po public imenu klase.

1
2
3
4
5
//sačuvano kao C.java inače Compile Time Error 
  
class A{} 
class B{} 
public class C{}

Kako staviti dve public klase u jedan paket?

Ako želimo staviti dve public klase u jedan paket, moramo imati dva java source fajla koja sadrže jednu public klasu, ali zadržati isto ime paketa. Na primer:

1
2
3
4
5
6
7
8
9
//sačuvaj kao A.java 
      
    package company; 
    public class A{} 
 
    //sačuvaj kao B.java 
      
    package company; 
    public class B{}

Comments

comments

Close Menu
Show Buttons
Hide Buttons