10 Ocak 2018 Çarşamba

private ve static Anahtar Kelimeleri Neden Birlikte Kullanılsın !!

    S.a. Arkadaşlar,
    Konuya başlamadan önce static ve private anahtar kelimelerinin kullanımını bilmek gerekir. Kısaca ikisini de belirtmek gerekirse;
   private : Değişkenin veya metodun (veyahut her ne kullanılırsa) sadece o sınıf içinde çağrılmasını sağlar. Başka sınıflardan erişilemez.
   static :  Değişkenin veya metodun (veyahut her ne kullanılırsa) nesne oluşturulmadan çağrılabilen yapılardır.



    Şimdi de bu iki anahtar kelimenin birlikte neden kullanabileceğini sorgulayalım. Çünkü private olursa başka sınıftan çağrılamaz dedik , madem başka sınıftan çağrılmayacak neden static yapalım. Yani o sınıfta kullanacaksak local bir değişken de kullanabiliriz. Ben böyle düşünürken konuyla ilgili bir arama yapma ihtiyacı hissettim. Burada benimkine benzer bir soru sorulmuş ve cevap da verilmiş. Açıkçası verilen cevap beni başta tatmin etmedi. Cevabı ve nedenini ve bunla ilgili diğer düşüncelerimi de söyleyececeğim.

 Cevap olarak :
private final static String JDBC_URL = "jdbc:mysql://localhost/xxdb";

    gibi bir tanım yapılabilir denmiş. Bunu sabit ve değişmeyecek bir sabit olarak görebiliyoruz. Çünkü belirli sayı veya bu tür kavramları "hard code" olarak yazmak istemeyebiliriz. private veya public olup olmaması da dışarıdan erişilip erişilemeyeceğini ifade eder. Bu bana yeterli bir açıklama gibi gelmedi. Çünkü bu işi const anahtar kelimesi ile yapabiliriz diye düşündüm. Bu aralar C# kodladığım için java'da bu anahtar kelimenin olmadığını sonradan hatırladım. const anahtar kelimesinin javada olmama sebebini belki farklı bir yazıda açıklamaya çalışırız ya da isterseniz buradan da bakabilirsiniz. Bu konuda yazılana hak verdim geç de olsa :)

    Şimdi yine static anahtar kelimesinin kullanımıyla ilgili daha önce yazdığımız yazıya da göz atarsanız static sınıf veya metod içinde static olmayan değişkenlerin kullanılmayacağını yazmıştık. Bu nedenle böyle bir metod veya sınıf içine zorunlu olarak static değişken kullanmalıyız. Tabi kullandığımız static bu değişkeni başka sınıftan erişilmesini istemiyorsak o zaman private static yazmamız zorunlu hale gelir. Eğer bir de final kelimesini de eklersek o zaman artık bu değişkene her hangi bir değer veremeyeceğiz ve doğal olarak sabit halini almış olacaktır.

   Kaynaklarımızı yukarıda belirttiğimize göre yavaş yavaş yazının sonuna geliyoruz. Bizim aklımıza gelmeyip sizin aklınıza gelen kullanım tarzlarını ifade etmek isterseniz lütfen yorumlara ekleyin. Hoşça kalın.


Hiç yorum yok:

Yorum Gönder