0

Java Eğitimleri 42 – Instanceof Anahtar Kelimesi ve Object Sınıfı

 

          Merhabalar. Bir önceki yazımızda polymorphism kavramından bahsetmiştik. Bu yazımızda da polymorphism ile bağlantılı ve bu kavramla birlikte kullanılan bir anahtar kelimeden bahsedeceğiz. Bu anahtar kelime instanceof’tur. Genellikle tanımlanan nesnelerin hangi sınıfa ait olduğunu öğrenmek için kullanılır.

          Bir önceki sorumuzu göz önünde bulundurarak anlatacak olursak; kedi, kopek ve kus adlı sınıflarımızı oluşturmuştuk. Burada 3 sınıf olduğu için hangi nesnenin, nerede olduğunu bulmak kolay olacaktır. Ancak 100 ve daha fazla sınıf olduğunu varsayarsak nesneleri karşılaştırmak ve hangi sınıfa ait olduğunu bulmak hem işimizi zorlaştıracak, hem de vaktimizi alacaktır. İşte bu sorunu engellemek için instanceof anahtar kelimesi kullanılmaktadır.

 

Örneğimize devam edelim:

 

Karabaş adlı nesneyi Kopek adlı sınıfa atadıktan sonra instanceof kelimesiyle o sınıfta olup olmamasını kontrol ettik ve bunu da basit bir if yapısıyla yazdırdık. Çıktımız:

 

Bu kod satırını,  hayvan sınıfına ait olup olmamasını kontrol ederek de gerçekleştirebilirdik.

 

Çıktımız:

 

Oluşturulan sınıf ve nesneler oluşturuldukları andan itibaren Object sınıfının da bir nesnesi olurlar. Yani bu örneğimizde; kedi, kopek ve kus adlı sınıflarımız hayvan adlı sınıfımızın bir alt sınıfı olduğu gibi, object sınıfımızın da bir alt sınıfıdır. Oluşturduğumuz hayvan adlı sınıf da object sınıfının bir alt sınıfıdır. Olayı görselleştirecek olursak:

 

 

Hayvan sınıfı object sınıfından; kedi, köpek ve kuş sınıfları da hayvan adlı sınıftan türetilmiştir. Şimdi bunu baz alarak, yani nesneleri object sınıfından türeterek kodlarımızı oluşturalım.

 

Yukarıdaki gibi tür dönüşümü ve instanceof anahtar kelimesi yardımıyla yine aynı çıktıyı alabilmek mümkün. Böylece sadece Konustur adlı sınıfa bakarak hangi nesnenin hangi sınıftan türetildiğini kolayca anlayabiliriz.  

NOT:  Yukarıda diğer kodlara ek olarak tür dönüşümünün uygulandığını görünüyoruz. Bu kodu object.Konus() olarak yazdığımızda Java otomatik olarak tür dönüşümünü uygulamaktadır.

Eğer nesnelerin hangi sınıfta olduğunu console’da görmek istiyorsanız, kodları şu şekilde değiştirebilirsiniz:

 

 

Çıktımız:

 

Bu yazımızda da instanceof kavramını ve object sınıfı anlatmaya çalıştık. Umarım faydalı olmuştur. İyi çalışmalar 🙂


Like it? Share with your friends!

0

0 Comments

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