Java’da Polymorphism 2 | instanceof kullanımı

997
görünümler

Bu yazımızda polymorphism konusuna devam edeceğiz.

Java’da bir objenin hangi classtan olduğunu anlamak için bir tane anahtar kelime kullanabiliriz. Bu anahtar kelimeyi kullanarak true yada false değerler elde edebiliriz. Anahtar kelimenin adı: instanceof

instanceof anahtar kelimesine bir obje vereceğiz ve bu objenin hangi classtan olduğunu anlamaya çalışacağız.

Örnekle anlamaya çalışalım;

Bir önceki yazımızda oluşturmuş olduğumuz Kedi , Kopek ve At classlarındaki objelerin hangi classlara ait olduğunu öğrenmeye çalışalım.

İlk olarak kopek referansı oluşturduk.

(kopek instanceof Kopek) yazarak kopek referansı Kopek sınıfından mıdır? diye kontrol ediyoruz. Burası bize true yada false dönecek.

Ve bu şekilde çalıştırdığımızda çıktımız “Bu nesne kopek sınıfındandır.” şeklinde döndü. Yani true döndü.

Peki biz (kopek instanceof Hayvan) şeklinde kontrol etseydik sonuç ne olacaktı?

Çıktımız “Bu nesne hayvan sınıfındandır.” şeklinde döndü. Çünkü biz inheritance la Kopek sınıfını Hayvan sınıfından türettik. Kopek te bir Hayvan olduğu için instanceof true olarak döndü.

Peki biz (kopek instanceof Kedi) şeklinde kontrol etseydik sonuç ne olacaktı?

Kopek Kediye dönüştürülemez şeklinde hata verdi. instanceof un kullanımı bu şekildedir.

Aslında java’da ki tüm classlarımız javanın içinde yazılmış hazır bulunan object isimli bir classtan türüyor. Biz herhangi bir türetme yada inheritance işlemi yapmasak bile java otomatik olarak bir tane object classından bu classı türetiyor. Yani object classının içinden belli metotları alabiliyoruz ve direk kullanabiliyoruz.

kopek. şeklinde yazdığımızda bir sürü metot çıkıyor. Fakat bunların bazılarını biz yazmadık classımızın içine. Dikkat ederseniz “java.Lang.Object” şeklinde bir başlık var yukarıda. Yani diyorki kopek objesi Object classından bu metotları alıyor. Buraya kadar yazdıklarımızı aslında polymorphism yapmadan belli bir metot yazabilmemiz için metoda object isimli bir tane obje göndermemiz gerekli. Ve daha sonra bu objenin hangi classlara ait olduğunu bulmamız için instanceof u kullanmamız lazım.

Polymorphism olmasaydı;

Kodumuz daha fazla yazılacaktı.

Kodumuz kararlı olmayacaktı. Yani sürekli kontrol yapacaktık.

Bir sonraki yazımızda Array ler konusuna değineceğiz. Sonraki derse geçmek için tıklayınız.

 

 

 

 

Polymorphism Neden Önemlidir?

 

 

1 Yorum

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz