JAVA Final deyimi nedir ne işe yarar

Java’da pek bilinmeyen anahtar kelimelerinden birinde sırada. Final anahtar kelimesi, değişkenlere, method’lara ve bazı sınıflara konulabiliyor. Final deyince aklınıza “değiştirilemez” ibaresi gelebilir.. Tanım olarak;

  • Final sınıf değişkenleri: Final olan bir sınıf değişkenine sadece bir kere değer ataması yapılabilir ve bu atama sadece sınıf konstrüktöründe gerçekleşebilir.
  • Final metot parametreleri: Final olarak tanımlanmış bir metot parametresine sadece bir kere değer atanabilir. Metot parametrelerinin tamamen final olarak tanımlamış olmalarında büyük fayda vardır. Bu şekilde parametrenin metot bünyesinde değişikliğe ugrama tehlikesi ortadan kaldırılmış olur.
  • Final metotlar: Final olan bir metot ne alt sınıflarca yeniden yüklenebilir (method overloading) ne de saklı (hidden) tutulabilir.
  • Final sınıflar: Final olan bir sınıf genişletilerek bir alt sınıf oluşturulamaz.

Final Değişkenler :

Final değişkenler ilk değerini aldıktan sonra bir daha değiştirilemiyorlar. Örnek :

final int a=4;

int a=3; // –> Hatalı’dırr final değer ilk değeri aldıktan sonra değiştirilemez..

System.out.println(“a : ” + a);

Not : * Eğer final değişkeni tanımlayıp ilk değeri belirtmezseniz yine hata alırsınız. null,0 gibi değerler vermesini beklemeyin..

Final Değişkene bir örnek daha verirsek..

 

 

Final method –> Final method ise override olmasına izin vermeyen method’tur..(Override    : Kalıtım  yoluyla miras olarak aldığımız  metodu  ezmektektir..) Aşağıdaki kod parçacığında override engellenmiş ve derleme hatası mevcuttur.

 

Final Class –> Final metodlara benzer bir yapı vardır. Final kelimesi oluşturulan sınıflarda kalıtım yapılamaz. Yani sınıfın alt sınıfları oluşturulamaz.

Finalize() –> Bir nesnenin yok edilmesi için kullanılan method’dur..Bu method çalışma esnasında nesne yok edileceği zaman çağrılır.. Yani sona erdirme methodudur.. Kullanılması pek önerilmemektedir. Aşağıdaki makalelerden nedenini öğrenebilirsiniz..

Detaylı bilgi için :

http://www.seckintozlu.com/1300-effective-java-madde-7-finalizer-sonlandirici-kullanmaktan-kacinin.html

http://www.dijitalders.com/icerik/44/2164/java_class_yapisinda_finalize_metotunun_kullanimi.html

 

 

 

 

 

 

Post Author: umiitkose

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">