Thursday, July 15, 2010

Java Package

Iyigunler arkadaşlar bugun java package ifadesini inceleyicez öncelikle package tanımı ile başlıyalım sınıfların(class, inteface, abstract , enum vs...) bır arada tutan bir ıfadedir. Bir package dikkat edilmasi gerekenler

  1.  Bir package ifadesi içinde aynı isimden classlar olmaz.
  2. Package ıfadesi istege balıdır yanı oluşturulma zorunlulugu yoktur bütün classlarınızı bir package yığabıleceğiniz gibi ayrı package düzenli şekilde koyabilirsiniz yani tamamen herkezin anlayacağı bir yapıda olası içindir.
  3. Package isim verirken şu şekilde olmalı az.risk.org yani noktalar yardımı ıle olusturulur şu şekılde olmaz az/risk/org
  4. Package isimleri küçük harfler olmalı bu tamamen programcılar arasınıda bır standartı belirtmek için kullanılır.
Ayrı ayrı package'lerde oluşan sınıfların bir birini çağırırken import ıfadesi kullanilır bu ifade tek manası kullanmak istediğin sınıf başka packagete eyer kullanmak istıyorsan o sınıfın yolunu bana tanımla anlamaına geliyor
Yukarıdaki şekilde iki ayrı paket var birinde A,B,C,D diyerinde ise E,F,G,H biz eyer Aynı paket içindekilerini birbiri içinde çağırısak import yani tanımlamaya ihtıyac yok ama A class içinde E,F,G,H classlarını çağırısak o zaman import gerekli
import az.risk.two.E;
public class A{
       public static void main(String args[]){
             // B class A classinin bulunduğu pakette olduğu için ımport kullanmadik
              B b = new B()
             // E classi baska pakette olduğu için import işlemi yaptık
             E e = new E();
       }
}

  • İmalı import (İmplicit import) : Bir paketteki tüm classların hepsini görmesini sağlar.
import az.risk.two.*;
public class A{
        public static void main(String args[]){
             /*Görüldüyü gibi her biri için ayrı ayrı import yapmak yerine tek bir import ile tum pakettekilere ulastım */
             E e = new E();
             F f = new F();
            G g = new G();
            H h = new H();

       }}
Ama bu yöntem pak tavsiye ettiğim bir durum degil çünkü gereksiz yuklenmeye sebeb oluyor kulanmadığınız pakketlerde yukleniyor
  • Açık import(Explicit import) : Bu yountem ise kullanacagimiz classı tanımlamak
import az.risk.two.E;
import az.risk.two.F;
import az.risk.two.G;
mport az.risk.two.H;
public class A{
        public static void main(String args[]){
             /*Görüldüyü gibi her biri için ayrı ayrı import yapmak yerine tek bir import ile tum pakettekilere ulastım */

             E e = new E();
             F f = new F();
            G g = new G();
            H h = new H();

       }}

  • Javanin kendi kutuphanesi ve barindirdiğı Package'ler : Bilindiyi gibi Javanin kendine ayit kütüphanesi var ve bu kütüphaneyi 5 ayrı katagoriye ayırmış 
  1.  Java Utilities API
  2. Java Basıc Input /Output API
  3. Java Networking API
  4. Java Abstract Window Toolkit
  5. Java Swing API
  1.  Java Utilities API : Bu pakettin içinde bir çok sınıflar ve pakketler bulunmakta bu paket su yol ıle başlar java.util.
Bu paketteki diger classlar Date , Calender , TimeZone , Local , Currency , Random , StringTokenizer , Timer......




      2.  Java Basıc Input /Output API : Bu Paketin : Bu paketin kapsadiklari ise java.io.paketindekiler genelikle bu paketteki siniflar okuma ve yazma islemlerini gerceklestirmek icin kullanilir. Bu paketteki siniflar verileriler uzerinde iki yolla islem yapiyor 
              a-stream  
              b-byte
Bu siniflar sunlar Input Stream , OutputStream, Reader , Writer , File , FilenameFilter , FileDescriptor , FileNameFilter ,RandomAccessFile ......

 
         3.   Java Networking API : bu paket java.net içindeki sınıfları ıcermektedır. Bu sınıflar sunlardır Soket , ServerSoket , URL ,Inet4Address

          4.   Java Abstract Window Toolkit : Bu paket java.awt paketıdır.
       5.  Java Swing API : Bu paket javax.swing dır. Bu paket awt paketinin biraz daha üstün bir pakettir. Bu pakete kullanılan componentlerin başına J harfı getirilir. bu paketin içindeki paketler undo , tree , text table , plaf , filechooser , event , colorchooser , border....



No comments:

Post a Comment