Anotasyon

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

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;

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.

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.

 

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.

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

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.

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.

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

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..

 

Eren Başaran

Software Developer
Mobilhanem Yazarı

4 Yorum

  • Selamlar,
    Neden bu şekilde isimlendirmeler yapıyoruz?

    com.mobilhanem.temeljavadersleri.paketyapisi
    tr.com.ornek.paket

    bu isimlerdeki com ve tr lerin anlamı ve amacı nedir?
    Açıklayabilirseniz sevinirim.

    • Selam Mustafa,

      Öncelikle belirtmek gerekir ki bu bir zorunluluk değil fakat yıllardır kullanılan bir standart diyebiliriz.

      Firmalar yazdıkları kodların paket isimlendirmelerini domain isimlerini tersten alarak yapmaktadır. Bir kod içerisinde com.mobilhanem.javadersleri şeklinde bir isimlendirme gördüğünde bu kodun mobilhanem yazarları tarafından yazıldığını tahmin edebilirsin.

      Eğer ki bir domain e sahip değilsen projede diğer geliştirici arkadaşların anlayacağı ve sınıfları mantıksal parçalara ayıran istediğin paket ismini kullanabilirsin.

  • Merhaba Hocam. Neden paket tanimlamasini IDEA da yaptiniz ben cok zor durumda kaldim. Guzel anlatmissiniz ama Eclipse uzerinde olsaydi guzel olurdu ve bizde faydalanirdik

    • Merhabalar, bir IDE üzerinden anlatmak daha kolay olacağı için ve Intellij IDEA’da gelişmiş IDE’lerden birisi olduğu için tercih ettik. Aslında mantığı anladıktan sonra bence Eclipse üzerinde de zorlanmadan yapabiliyor olman lazım, biraz ararsın ama derslerde Intellij IDEA üzerinden anlatılıp da senin Eclipse üzerinde yapamayacağın bir şey olduğunu düşünmüyorum 🙂

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?