Java'da final
anahtar kelimesi, bir değişkenin, metotun veya sınıfın sadece bir kez atanabileceğini ve sonrasında değiştirilemeyeceğini belirtmek için kullanılır. final
kullanımının farklı durumları ve etkileri vardır:
-
Final Değişkenler:
- Bir değişken
final
olarak tanımlandığında, ona sadece bir kez değer atanabilir. Bu değer ya tanımlandığı satırda ya da sınıfın yapıcı metodunda atanmalıdır¹. - Örneğin:
final int MAX_SPEED = 120;
Bu kodda
MAX_SPEED
isimlifinal
değişkenine 120 değeri atanmıştır ve bu değer programın ilerleyen kısımlarında değiştirilemez. - Bir değişken
-
Final Metotlar:
- Bir metot
final
olarak işaretlendiğinde, bu metot alt sınıflar tarafından ezilemez (override edilemez)¹. - Örneğin:
public final void display() { System.out.println("Bu metot override edilemez."); }
- Bir metot
-
Final Sınıflar:
- Bir sınıf
final
olarak işaretlendiğinde, bu sınıftan türetilmiş alt sınıflar oluşturulamaz¹. - Örneğin:
public final class MyFinalClass { // ... }
MyFinalClass
isimli bu sınıffinal
olduğu için başka bir sınıfMyFinalClass
'ı genişletemez (extend edemez). - Bir sınıf
final
kullanımının temel amacı, sabit değerler tanımlamak ve nesne yönelimli programlamada kalıtım yoluyla yapılabilecek değişiklikleri sınırlamaktır. Bu sayede, kodun daha güvenli ve tahmin edilebilir olması sağlanır.
Kaynak: Bing ile konuşma, 17.05.2024
(1) JAVA Final deyimi nedir ne işe yarar | Ümit KÖSE. https://umiitkose.com/2016/08/java-final-deyimi-nedir-ne-ise-yarar/.
(2) Java’da Final Anahtar Kelimesi ve Kullanımı | Seçkin Tozlu. https://www.seckintozlu.com/456-javada-final-anahtar-kelimesi-ve-kullanimi.html.
(3) //Liste 20 - baskent.edu.tr. https://bing.com/search?q=java+final+nedir.
(4) Java Dersleri #60 - Final Deyimi ve Sabit Tanımlama - Kodlama Vakti. https://kodlamavakti.com/java/final-deyimi-ve-sabit-tanimlama/.
(5) Java final İfadesi Nedir? Ne İçin Kullanılır? - Testings.dev. https://testings.dev/java-final-ifadesi-nedir/.
(6) Final Anahtar Sözcüğü ve Sabit Tanımlama Lesson | Patika.dev. https://academy.patika.dev/courses/java-102/final.