Java Programlama

Paketler (Packages)

Paket birbiriyle bağı olan sınıf ve arayüzleri düzenlemeye yarayan bir isim olarak ifade edilebilir. Bir çok sınıfın ve arayüzün kullanıldığı sistemlerde, birbiriyle ilgili olan sınıf ve arayüzler tasnif edilerek bir paket içine yerleştirilir ve bu pakete bir isim verilir. Bu sayede bir düzen oluşturulduğundan, ihtiyaç duyulan sınıf ve arayüzlere daha kolay erişim sağlanır. Paket sisteminde, birbiriyle ilgili olan sınıf ve arayüzler belirli bir isme sahip bir klasörde yer alır. Paketler tıpkı bir bilgisayar dizin yapısı gibi hiyerarşik bir yapıda oluşturulur.

Java platformunda, uygulamalarınızda kullanabileceğiniz ve paketlerden oluşan büyük çaplı bir kütüphane bulunur. Bu kütüphane Uygulama Programlama Arayüzü (Application Programming Interface - API) olarak bilinir. Programcılar ihtiyaçlarına uygun olarak bu kütüphanelerde bulunan paketleri kullanabilir.

Ayrıca, birbiriyle ilgili sınıf ve arayüzleri bir grup içinde düzenleyerek kendi paketinizi oluşturabilirsiniz.

Paket Oluşturma

Bir paket oluştururken önce package anahtar kelimesi sonra da paket adı tanımlanır.

package paket_adi;

Bir paket oluştururken, paket için bir isim belirlemeniz ve bu ismin önüne package anahtar kelimesi koyarak sınıf ve arayüzleri içeren ve paketin içinde yer almasını istediğiniz tüm kaynak dosyaların en başına koymanız gerekir.

package anahtar kelimesi kaynak dosyanın ilk satırı olmalıdır. Bir kaynak dosya başında package anahtar kelimesi kullanılmadığında kaynak dosya isimsiz bir paketin içine konur.

Önce aşağıda gösterilen "personelint.java" ve "personel.java" adlı iki program dosyasını oluşturun ve bilgisayarınızda bulunan javaprogs dizini altındaki personel dizinine kaydedin.

/* personelint.java : Interface dosyası */

package javaprogs.personel; /* Dizin yapısını gösterir */

interface personelint {
  /* Metod bildirimleri */
  public void setBilgi(String cadi, String csoyadi, int cyasi);
  public void yazdirBilgi();
} 
/* personel.java : Sınıf dosyası */

package javaprogs.personel; /* Dizin yapısını gösterir */

public class personel implements personelint {
  /* Veri alanı bildirimleri */ 
  public String adi;   
  public String soyadi;
  public int yasi; 

  public void setBilgi(String cadi, String csoyadi, int cyasi) {
    adi = cadi;
    soyadi = csoyadi;
    yasi = cyasi;
  } 

  public void yazdirBilgi() {
    System.out.println("Adı: " + adi + " Soyadı: " + soyadi + " Yaşı: " + yasi);
  }  
}

javaprogs.personel adlı bir paketin tanımlanması, bilgisayarınızda aynı sıralama ile tanımlanmış bir dizin yapısı olmasını ve yukarıdaki program dosyalarının personel dizini içinde bulunmasını gerektirir.

Paket Kullanma

Yukarıda oluşturduğumuz iki program dosyasını bilgisayarımızdaki personel dizinine kaydettikten sonra aşağıdaki ana program dosyasında import anahtar kelimesini kullanarak javaprogs.personel paketini programa dahil edebilirsiniz:

/* javaprog.java : Ana program dosyası */

import javaprogs.personel.*;  /* Personel dizini içindeki tüm sınıflar ve arayüzleri  */

public class javaprog {
  public static void main(String args[]){
    /* personel sınıfına ait değişken bildirimi */
    personel per = new personel();
    
    per.setBilgi("Nedim", "Sakin", 35); /* Değer atama */
    per.yazdirBilgi();                  /* Değer yazdırma */
  }
}

Bilgisayarınızda, javaprogs\personel dizini javaprog.java adlı ana program dosyasının altında yer almalıdır. Komut satırında aşağıdaki satırları yazdığınızda program derlenir ve çalışır:

C:\>javac javaprog.java
C:\>java -Dfile.encoding=Cp857 javaprog
Adı: Nedim Soyadi: Sakin Yaşı:35

Bir paket içinde yer alan sadece tek bir dosyayı bir programa dahil etmek için ise aşağıdaki kod kullanılır:

import javaprogs.personel.personel; /* Personel dizini içindeki personel sınıfı */