final Anahtar Kelimesi

1461 kez okundu.

Java’da final anahtar kelimesi 4 durum için kullanılır.

1) Değişkenler için (basit veya karmaşık),
2) Metotlara geçilen parametreler için,
3) Metotlar için,
4) Sınıflar için.

1) Değişkenler (Basit veya Karmaşık) İçin final Anahtar Kelimesi

Değişkenler için final anahtar kelimesi kullanmak demek değeri sonradan değiştirilemeyen değişkenler oluşturmak demektir. Basit bir değişken final olarak tanımlanırsa ilk aldığı değerden sonra değeri değiştirilemez. Karmaşık (referans) bir değişken final olarak tanımlanırsa ilk gösterdiği nesneden sonra başka bir nesneyi gösteremez.

public class FinalKeywordTest {
 
        public static void main(String[] args) {
 
		final int a = 15;
 
		a = 20;  // Derleme Hatası
 
		final FinalKeywordTest f = new FinalKeywordTest();
 
		FinalKeywordTest f2 = new FinalKeywordTest();
 
		f = f2; // Derleme hatası
 
		f = null; // Derleme Hatası
 
	}
 
}

2) Metotlara Geçilen Parametreler İçin final Anahtar Kelimesi

Metotlara geçilen parametre final olarak tanımlanırsa metot içerisinde o parametrenin değeri değiştirilemez.

 
public class FinalKeywordTest {
 
       public void metot(final int i){
 
		i = 20; // Derleme Hatası
	}
 
}

3) Metotlar İçin final Anahtar Kelimesi

final olarak tanımladığımız bir metot alt sınıflarca override edilemez. Fakat tabi ki devralınır.

public class FinalKeywordTest {
 
	public final void metotOverride(){
 
		System.out.println("Bu metot override edilemez");
	}
 
}
 
class Deneme extends FinalKeywordTest{
 
	@Override
	public void metotOverride() { // Derleme hatası
		System.out.println("d");
	}
}

Burada bir şey belirteyim, interface içerisinde final metot tanımlayamayız. Çünkü interface içerisinde bulunan default metotlar haricindeki diğer metotlar zaten alt sınıflarca override edilmesi için yazılır. default metotlar ise başka bir yazının konusu olsun.

4) Sınıflar için final Anahtar Kelimesi Kullanmak

Bir sınıf final olarak tanımlanırsa o sınıf devralınamaz.

public final class FinalKeywordTest {
 
}
 
class Deneme extends FinalKeywordTest{ // Derleme Hatası
 
}

You may also like...

Yorum Yazın

avatar
  Subscribe  
Notify of