Serkan Ayyıldız

Meraklı bir yazılım uzmanı...

Java Virtual ve Override Kavramlarının Kullanımları

Java meraklısı yazılımcılara yeniden merhabalar :)

Önceki makalemiz Java Final Sınıflar konusunun devamı niteliğinde olan bu makalemizde Virtual ve Override deyimlerini ve nesne yönelimli programlama konusu içerisindeki yerlerini öğreneceğiz.

Öncelikle Virtual deyiminden bahsedelim; virtual sözcük olarak Türkçe'ye çevrildiğinde "sanal" anlamına gelmektedir.Bu deyim ile herhangi bir sınıf içerisindeki metodu, aynı sınıfın başka bir sınıfa kalıtım verdikten sonra metot içeriğinin değiştirilebilmesini yani metodu yeniden yapılandırabilmeye olanak sağlamaktadır.

Override deyimi ise Türkçe'ye tam olarak çevrilemesede aklınızda "yeniden yapılandırma" olarak tutabilirsiniz ve bu deyim ile yukarıda bahsettiğim virtual deyimi almış metodu yeniden yapılandırarak isim ve tipi değişmeden yapacağı işi baştan tanımlama işleminde kullanırız.

Bu iki paragrafın özeti ise; virtual ile metodun içeriğinde değişiklik yapılabilmesine izin verir,override ile bu izni kullanarak metodun yapacağı işi değiştiririz.

Buraya kadar anlattıklarım ise tamamen C# programlama diline ait özelliklerdi ve bu makaleyi blogumu düzenli takip etmeden Google'a "Java'da Virtual Override" arama sonucundan geliyorsanız,size Java'da private veya final olarak tanımlanmamış tüm metotların varsayılan olarak virtual olarak işaretlendiğini belirtmek isterim :)

Tabi bu dediğimden sonra yazının devamını da okumanızı öneririm..

Virtual ve override deyimlerinin nasıl kullanıldığını öğrenmek adına NetBeans uygulamamızı açıyor ve Personel adında bir sınıf (class) oluşturuyoruz:

java-class

Personel sınıfı içerisinde personelin adını,soyadını ve yaşını tutabilmesi için String ve int tipinde özelikler (property) tanımladıktan sonra void tipli "Calis" adında bir metot yazıyoruz:

java-metot

JFrame oluşturduktan sonra panelimize JButton ekliyor ve action performed eventinde sınıfımızdan instance alarak metodumuzu çalıştırıyoruz:

java-class-instance

java-virtual-metot

java-virtual-override

Void metodumuzu resimde gördüğünüz gibi "virtual" olmadan sanallaştırdık..Sanallaştırdık dememizin nedeni ise personelin beyaz yaka mı yoksa mavi yaka mı olup olmadığını ve doğal olarak çalışmaktan kastının ne olduğunu
bilemeyişimizdir..

Personel sözcüğü çok sığ bir sözcük olduğu için "Muhasebeci" isimli bir sınıf oluşturuyor ve "extends" deyimiyle personel
sınıfından kalıtım (inheritance) alıyoruz:

java-class-extends

Sonuçta muhasebeci de bir personel olduğu için personel sınıfının yapacağı işi devralabilir ve çalışma konusu olan muhasebe hesaplamalarını yapabilir.Bunu yaparken C# dilinden farklı olarak override etmek istediğimiz metodun üstüne @override sözcüğünü ekliyoruz:

java-metot-override

Tıpkı personel sınıfımızdan olduğu gibi muhasebeci sınıfımızdan instance alarak metodumuzu test ediyoruz:

java-override-instance

java-metot-virtual

Personel sınıfından kalıtım alan muhasebeci sınıfının "Calis" metodunun tipi,adı ve parametresi (bu örneğimizde parametre kullanmadık) bire bir aynı olduğuna dikkat edin çünkü virtual olarak işaretlenmiş bir metodu yeniden yapılandırabilmek için metodun adı,tipi ve parametrelerinin üst sınıftakiyle aynı olması gerekmektedir..

Aynı örneği bu defa pazarlama departmanı için yapalım...Pazarlamacı isimli bir class oluşturuyoruz ve yine personel sınıfından kalıtım alıyor çünkü pazarlama departmanında çalışan insan yine sözde şirketimizin personeli sayılır.

Personel sınıfımızdaki "Calis" metodu zaten varsayılan olarak virtual işaretli olduğu için pazarlamacı sınıfımızdaki
"Calis" metodumuzu override deyimiyle tanımlıyoruz:

java-virtual

ve bu defa pazarlamacı sınıfımızdan instance alarak metodumuzu çalıştırıyoruz:

virtual-override

java-virtual-method

Böylece object orianted programming konusu içerisinde virtual ve override konusunuda öğrenmiş olduk,bir sonraki
makalemizde görüşmek üzere hoşçakalın esen kalın :)




Bir yorum bırak E-posta adresiniz yayınlanmayacaktır.

Menu