Merhaba, Jetto Net takipçileri!
Java Nesne Yönelimli Programlama (OOP) serimize hoş geldiniz. Bir önceki yazıda, arayüzler (interfaces) aracılığıyla sınıflar arasında sözleşmeler oluşturmayı ve çoklu kalıtımın bir türünü sağlamayı öğrendik. Bu yazımızda ise Java projelerimizi daha düzenli, anlaşılır ve yönetilebilir hale getiren paketleri keşfedeceğiz.
Java öğrenirken karşımıza en çok paket ve import yapıları çıkacaktır. Yeni başlayanlar için bu terimler oldukça yabancı gelebilir ancak ilk öğrendiğiniz dil java değilse ve c++ ya da c# biliyorsanız anlamanız oldukça kolay olacaktır. Yeni öğrenenler ise endişelenmesin, bütün konularda olduğu gibi burda da temelden başlıyoruz.
Paket (Package) Nedir?
Java dilinde oldukça fazla sınıf vardır.Sınıflar paket klasörleri içinde yer alan dosyalardır.Mantıksal olarak bağlantısı olan ya da başka bir deyişle birbiriyle ilişkili sınıflar aynı paket içerinde yer almaktadırlar. (C++ dilini öğrenmiş olanlar bunu namespace kavramıyla bağdaştırmıştır.) Paket tanımı java.paketAdı.sınıfAdı şeklinde olur.
import ise sınıfı tanımlar. Yani eğer aynı pakette olmayan bir sınıf kullanılmak istenirse önce sınıfın import edilmesi gerekmektedir.(C++ dilindeki using kelimesiyle benzerdir.) Kullanımı import java.paketAdı.sınıfAdı;
Bazen sınıfAdı yerine * işareti ile karşılaşabilirsiniz. Bunun da kullanımı şu şekildedir.
import java.paketAdı.*; Bu ifade java.paketAdı paketindeki tüm sınıfları çağırabilirsin demektir.
Paketler Neden Kullanılır?
- İsimlendirme Çakışmalarını Önleme: Farklı geliştiriciler aynı isimde sınıflar oluşturabilir. Paketler, bu tür çakışmaları önlemek için bir isim alanı (namespace) sağlar.
- Kodun Düzenlenmesi: Paketler, sınıfları mantıksal olarak gruplandırarak kodun daha düzenli ve anlaşılır olmasını sağlar.
- Erişim Kontrolü: Paketler, sınıfların ve arayüzlerin erişimini kontrol etmek için kullanılabilir. Örneğin, bir paket içindeki bir sınıfı public yaparak diğer paketlerdeki sınıfların bu sınıfa erişmesini sağlayabiliriz.
Paket Nasıl Oluşturulur?
Bir paket oluşturmak için, Java dosyasının en başına package anahtar kelimesini ve ardından paketin adını yazarız. Paket adı, ters çevrilmiş bir domain adı şeklinde yazılmaktadır. (örneğin, net.jetto.blog).
Yukardaki örnekte, Makale sınıfı net.jetto.blog paketinin içinde yer almaktadır.
Paketler Nasıl Kullanılır?
Bir paket içindeki bir sınıfa başka bir paketten erişmek için import anahtar kelimesini kullanırız.
import net.jetto.blog.Makale;
public class Test {
public static void main(String[] args) {
Makale makale = new Makale();
// ...
}
}
Burada da, Test sınıfı net.jetto.blog paketindeki Makale sınıfını kullanır.
Java'nın Dahili Paketleri
Login or Register to see the download link. web sitesinde daima güncel java paketlerinin tanımları yer alır. Programcı onlara serbestçe ulaşır. Java açık kaynak sistemlidir. Kaynak programlara herkes erişebilir. Sözü edilen sitede API (Application Programmer’s Interface) listesinde çok sayıda paket vardır. Her paketin içindeki sınıfların ve arayüzlerin açık tanımları görülebilir. Onlar, bir programcının gereksinimini büyük ölçüde karşılayacak yeterliktedir. Elbette, programcı gerekseme duyduğu sınıfları, arayüzleri ve paketleri serbestçe yaratabilir. Ama, API ‘de hazır olanları yeniden yaratmanın çok akıllıca olduğu söylenemez. Java API ‘leri denenmiş, hatasız kodlar içerdiği gibi, onları doğrudan kullanmak programcıya büyük zaman kazandırır.
Örneğin, java.lang paketi, String, Math, System gibi temel sınıfları içerirken, java.util paketi, ArrayList, HashMap gibi koleksiyon sınıflarını içerir.
Sonuç
Paketler, Java'da büyük projelerin yönetimini kolaylaştıran önemli bir araçtır. Paketleri kullanarak kodumuzu daha düzenli, anlaşılır ve yeniden kullanılabilir hale getirebiliriz. Bir sonraki yazımızda, OOP'nin diğer önemli kavramlarını incelemeye devam edeceğiz. Yorumlar kısmında sorularınızı veya görüşlerinizi yazzabilirsiniz.
İyi Kodlamalar!