PHP Dersleri

Php Nesne Yönelimli Programlama (Final)

Final deyimi, nesne yönelimli programlamada çok önemli bir özelliktir. Sınıflarda ve metotlarda bu deyimi kullanabiliriz. Seçilen bir sınıfa final deyimi tamamlandığında, tanımlanan sınıf extends ile başka bir sınıfa dahil edilemez. Aynı şekilde extends ile içerik birleşimi sağlanan sınıflarda, aynı ismi taşıyan fonksiyonların birleşmesinin önüne geçmektedir. Sınıf içerisinde yer alan değişkenler final olarak tanımlanamaz!

Diğer nesne yönelimli programlama videoları için php dersleri kategorisini takip edebilirsiniz. Bu sayede hiçbir dersi kaçırmamış olursunuz.

Final Deyiminin Sınıfta Kullanımı

Final deyimi bir sınıfta kullanıldığında, tanımlanan sınıf extends ile başka bir sınıf tarafından türetilemez.

final class dersler{
 
}
class konular extends dersler{
 
}

Yukarıdaki örneğimizde dersler ve konular olmak üzere iki sınıf tanımladık. Tanımlanan dersler sınıfına final deyimini tanımlıyoruz. Konular sınıfında dersler sınıfından türetmek istiyoruz. Fakat dersler sınıfında final deyimi kullanıldığı için hata alacağız. Alacağımı hata şu şekilde olacak; Class konular may not inherit from final class (dersler). Bu hatadan da anlaşıldığı gibi konular sınıfı, final olarak tanımlanan dersler sınıfından miras alamaz.

Final Deyiminin Metotda Kullanımı

Sınıf içerisinde yer alan bir metotda final deyimi kullanılırsa, bu metot alt sınıflar tarafından geçersiz kulınmaktadır. Final deyimi, aynı ismi taşıyan metotlarda kullanılması bu bağlamda daha sağlıklıdır.

class dersler{
   final public function isim(){
 
   }
}
 
class konular extends dersler{
   public function isim(){
 
   }
}

Yukarıdaki örnekte yine dersler ve konular olmak üzere iki adet sınıf tanımladık. Dersler sınıfındaki isim() metodu final olarak tanımlandı. Konular sınıfındaki isim() metodunda ise sadece public deyimi tanımlı. Konular sınıfı, dersler sınıfından türetildiğinden ve dersler sınıfındaki isim() metodu final olarak tanımlandığı için hata verecektir. Alacağımız hata şı şekilde olacak; Cannot override final metod dersler::isim() Bu hatadan da anlaşılacağı gibi konular sınıfı, dersler sınıfında tanımlanan isim metodunun final olmasından dolayı, bu metoddan miras alamaz.

Sonuç Olarak

Final deyimi sınıf ve metotların başına gelmektedir. Sınıf içerisinde yer alan değişkenlerde final deyimi kullanılmaz. Final deyimi kullanılan sınıf yada metot, miras olarak kullanılamaz. Metot ve sınıflarda koruma amaçlı kullanılmaktadır. Özellikle bileşen yapımında olmazsa olmazı olmakla birlikte, güvenlik tedbirlerinde de en başta yer almaktadır.

İlgili Makaleler

Bir cevap yazın

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