Java Paket Yapısı ve Import Kavramı | Java Dersleri

Java Paket Yapısı ve Import Kavramı | Java Dersleri

Merhaba arkadaşlar,
mobilhanem.com üzerinden anlattığımız/yayınladığımız derslerimize Temel Java Dersleri konu başlığı altında Paket Yapısı ve Import Kavramı ile devam ediyoruz.

Nesne ve Sınıf yapısı nı öğrendikten sonra sonraki aşamalara geçmek için paket yapısından mutlaka haberdar olmak gerekmektedir. Özellikle bir sonraki dersimizde anlatacağım erişim belirleyicileri daha iyi kavrayabilmek adına paket yapısı ve import kavramı nı iyi anlamış olmamız gerekmektedir. Bu dersimizde paket yapısı nedir, Java’da paket yapısı ve import kavramı nasıl kullanılır, Intellij IDEA ile paket nasıl oluşturulur gibi işlemleri örneklerle birlikte anlatacağım.

Paket Yapısı Nedir?

Java’da proje oluştururken özellikle büyük ve kapsamlı projelerde sınıflar mantıksal ve yapısal durumlarına göre farklı paketler altında tutulurlar. Paket Yapısı kullanılması hem kodun daha düzenli olmasını hem kullanımın kolay olmasını hem de sınıfların birbirleriyle iletişimlerinde meydana gelecek sınırlandırmaların ayarlanabilmesini sağlarlar. Paket yapısı aslında Java içerisinde dosya yolu tanımlamaktır. Oluşturduğumuz sınıfları farklı paketler altına koymak aslında bu sınıfları farklı dosya yolları içerisine kaydetmek demektir. Bu dosya yollarıyla Java hangi sınıfa nereden erişeceğini rahat bir şekilde anlayabilir. Ayrıca farklı paketler altında sınıf oluştururken aynı isimler kullanılabilir.

Java’da Paket Yapısı

Java’da paket yapısı kullanılırken çoğunlukla domain ismi baz alınır ve bu domain ismi üzerinden isimlendirme yapılır. Biz bu konu başlığı altında bir proje geliştiriyor olsak muhtemel paket ismi Java’da aşağıdaki gibi tanımlanmalıdır;

com.mobilhanem.temeljavadersleri.paketyapisi

com.mobilhanem.temeljavadersleri.paketyapisi

Projemizde com.mobilhanem.temeljavadersleri.paketyapisi1 paketi altında AnaSinif.java sınıfını oluşturduğumuzu varsayalım, yine aynı isimle com.mobilhanem.temeljavadersleri.paketyapisi2 paketi altında da AnaSinif.java sınıfını oluşturabiliriz. İki sınıfın isimleri aynı olmasına rağmen Java farklı paketler altında olan bu sınıfların isimlerine kızmaz. Önceki derslerimizde verdiğimiz örneklerde aslında paket yapısından faydalandığımız oldu. Bir Java sınıfının paketini aşağıdaki şekilde tanımlayabiliriz.

package com.mobilhanem.temeljavadersleri.paketyapisi

package com.mobilhanem.temeljavadersleri.paketyapisi

Burada dikkat etmeniz gereken şey paket yapısı oluşturulurken isimlendirmede büyüklü küçüklü isimlendirme yapılmıyor. Java’da paket yapısı belirtilirken tüm harfler küçük olmalıdır. Bu tüm yazılımcıların benimsediği bir kuraldır. Paket isminde büyük harf kullanılması IDE tarafından hata olarak yazılımcıya bildirilmesede paket isminde büyük harf kullanımı tavsiye edilmemektedir.

Intellij IDEA’da Paket Yapısı

Intellij IDEA içerisinde proje oluşturmayı hemen hemen ilk derslerimizde öğrenmiştik, şimdi oluşturduğumuz proje içerisinde sınıfları direk src klasörü altında değilde tanımladığımız paket altında oluşturabiliriz. Bunun için paketi oluşturmak istediğimiz klasörün üzerine sağ tıklayarak New -> package seçeneğini seçiyoruz.

Bize paket adımızın ne olacağını soruyor, bu adımda da paket adımızı yukarıdaki örneklerde verdiğim gibi başında package olmadan sadece domain kısmını yazıyoruz ve tamam diyoruz.

 

Bu şekilde tanımladıktan sonra paketimiz oluşuyor artık paketimizin içerisine sınıflarımızı oluşturabiliriz.

Başka bir yöntemde direk olarak paketi ve sınıfı oluşturacağımız klasörün üzerine sağ tıklayarak New -> Java Class diyoruz. Ardından isimlendirmede aşağıdaki gibi paket adı ve sınıf adını birlikte yazıyoruz.

Bu şekilde de yine paket içerisine istediğimiz sınıfı oluşturabiliriz.

Paket içerisinde sınıflarımızı oluşturduktan sonra bu sınıfların en üstlerinde paket yapısını otomatik IDE tarafından oluşturulduğunu görürüz.

package com.mobilhanem.temeljavadersleri.paketyapisi;

package com.mobilhanem.temeljavadersleri.paketyapisi;

 

Import Kavramı

Java’da paket yapısını ve paket oluşturmayı yukarıda örneklendirdiğimiz şekilde yapabilirsiniz. Aynı şekilde paket içerisine sınıf oluşturmayıda öğrendik. Peki oluşturduğumuz bu paket yapısı ve içerisindeki sınıflara farklı sınıflardan nasıl ulaşacağız. Yukarıdaki Örneğimizde iki sınıf oluşturduk. Bu sınıfların paket isimleri farklı fakat sınıf isimleri ayın şimdi bu durumdan kafa karışıklığı yaratmamak için iki paket içerisine iki farklı sınıf daha oluşturalım.

com.mobilhanem.temeljavadersleri.paketyapisi altında PaketYapisi sınıfı, tr.com.ornek.paket altınada PaketSinifi sınıfını oluşturduk. Projemiz içerisindeki son durum aşağıdaki gibi oldu.

Şimdi PaketYapisi sınıfımız içerisinde tr.com.ornek.paket paketi altındaki sınıflardan nesneler oluşturalım.

package com.mobilhanem.temeljavadersleri.paketyapisi;

import tr.com.ornek.paket.*;

/**
*
* @author ErenBasaran
* Created on 31/07/2017
*/
public class PaketYapisi {

OrnekSinif1 ornekSinif1 = new OrnekSinif1();

PaketSinifi paketSinifi = new PaketSinifi();

}

package com.mobilhanem.temeljavadersleri.paketyapisi;

 

import tr.com.ornek.paket.*;

 

/**

*

* @author ErenBasaran

*         Created on 31/07/2017

*/

public class PaketYapisi {

    

    OrnekSinif1 ornekSinif1 = new OrnekSinif1();

    

    PaketSinifi paketSinifi = new PaketSinifi();

    

}

Dikkat ederseniz sınıf tanımlamasıyla paket tanımlaması arasında bir import kavramı var. İşte bu;

import tr.com.ornek.paket.*;

import tr.com.ornek.paket.*;

tanımlaması tr.com.ornek.paket paketi altındaki tüm sınıfların PaketYapisi sınıfı içerisinde kullanıldığını gösteriyor. Dilerseniz bunu ayrı ayrı da gösterebilirsiniz.

import tr.com.ornek.paket.OrnekSinif1;
import tr.com.ornek.paket.PaketSinifi;

import tr.com.ornek.paket.OrnekSinif1;

import tr.com.ornek.paket.PaketSinifi;

Static Import

Proje oluştururken sık sık static method kullanma gereksinimi duyabiliriz. Bu static metotların basitçe kullanımına yine oluşturduğumuz sınıflardan örnek vererek devam edelim. PaketYapisi sınıfı içerisinde bir tane static metot tanımlayalım.

package com.mobilhanem.temeljavadersleri.paketyapisi;

import tr.com.ornek.paket.OrnekSinif1;
import tr.com.ornek.paket.PaketSinifi;

/**
*
* @author ErenBasaran
* Created on 31/07/2017
*/
public class PaketYapisi {

OrnekSinif1 ornekSinif1 = new OrnekSinif1();

PaketSinifi paketSinifi = new PaketSinifi();

public static void STATIC_METOT() {
System.out.println(“PaketYapisi sınıfından STATIC_METHOD çalıştı.”);
}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

package com.mobilhanem.temeljavadersleri.paketyapisi;

 

import tr.com.ornek.paket.OrnekSinif1;

import tr.com.ornek.paket.PaketSinifi;

 

/**

*

* @author ErenBasaran

*         Created on 31/07/2017

*/

public class PaketYapisi {

 

    OrnekSinif1 ornekSinif1 = new OrnekSinif1();

 

    PaketSinifi paketSinifi = new PaketSinifi();

 

    public static void STATIC_METOT() {

        System.out.println(“PaketYapisi sınıfından STATIC_METHOD çalıştı.”);

    }

 

}

Şimdi bu static methodu PaketSinifi içerisinden çağıralım.

package tr.com.ornek.paket;

import static com.mobilhanem.temeljavadersleri.paketyapisi.PaketYapisi.STATIC_METOT;

/**
*
* @author ErenBasaran
* Created on 31/07/2017
*/
public class PaketSinifi {

public static void main(String[] args) {
STATIC_METOT();
}

}

package tr.com.ornek.paket;

 

import static com.mobilhanem.temeljavadersleri.paketyapisi.PaketYapisi.STATIC_METOT;

 

/**

*

* @author ErenBasaran

*         Created on 31/07/2017

*/

public class PaketSinifi {

 

    public static void main(String[] args) {

        STATIC_METOT();

    }

 

}

Bu şekilde static import kavramıyla sınıflarda tanımlı static metotları kolaylıkla kullanabiliriz.

Sonuç

Bu dersimizde paket yapısı ve import kavramı hakkında bilgi sahibi olduk. Sonraki dersimizde erişim belirteçlerini öğrenerek Nesne Yönelimli Programlamaya giriş adımlarımızı atmaya devam edeceğiz. Nesne Yönelimli Programlama için bu derslerimiz büyük önem arz etmektedir.

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm Temel Java Dersleri için tıklayınız..

 

31

Yorum Yap
0 Yorum yapan