Sevgili öğrenciler, bu soru, nesne yönelimli programlamanın temel kavramlarından biri olan metot türlerini anlamamızı istiyor. Bir sınıfın üyelerini (özellikler ve metotlar) nasıl tanımladığımız ve kullandığımız, programlarımızın yapısını ve işleyişini doğrudan etkiler. Şimdi seçenekleri tek tek inceleyelim:
- A) Constructor metot: Constructor (yapıcı) metotlar, bir sınıftan yeni bir nesne (object) oluşturulduğunda otomatik olarak çalışan özel metotlardır. Nesnenin başlangıç durumunu ayarlamak için kullanılırlar. Yani, bir constructor metodu çağırmak için önce bir nesne oluşturmanız gerekir. Bu nedenle, "nesne oluşturmadan çağrılabilen" tanımına uymaz.
- B) Static metot: Static (statik) metotlar, bir sınıfa ait olan ancak belirli bir nesneye ait olmayan metotlardır. Bu metotları çağırmak için sınıfın bir nesnesini oluşturmanıza gerek yoktur; doğrudan sınıf adını kullanarak çağrılabilirler (örneğin:
SinifAdi.MetotAdi()). Sınıfın tüm nesneleri için ortak olan veya sınıf düzeyinde bir işlem gerçekleştiren fonksiyonlar için idealdirler. Soru metnindeki "ortak olan ve nesne oluşturmadan çağrılabilen" tanımına tam olarak uyar.
- C) Virtual metot: Virtual (sanal) metotlar, nesne yönelimli programlamada kalıtım (inheritance) ile birlikte kullanılan, türetilmiş sınıflarda yeniden tanımlanabilen (override edilebilen) metotlardır. Polimorfizm (çok biçimlilik) sağlamak için kullanılırlar. Bir virtual metodu çağırmak için yine bir nesneye ihtiyacınız vardır ve genellikle türetilmiş sınıfın nesnesi üzerinden çağrılır. "Nesne oluşturmadan çağrılabilen" tanımına uymaz.
- D) Abstract metot: Abstract (soyut) metotlar, sadece bir bildirimden (imza) oluşan ve bir gövdesi (implementasyonu) olmayan metotlardır. Bunlar soyut sınıflarda tanımlanır ve bu soyut sınıftan türetilen somut (concrete) sınıflar tarafından mutlaka uygulanması (implement edilmesi) gerekir. Abstract metotlar tek başlarına çağrılamazlar; ancak somut bir sınıfta implement edildikten ve o sınıftan bir nesne oluşturulduktan sonra çağrılabilirler. "Nesne oluşturmadan çağrılabilen" tanımına uymaz.
Yukarıdaki açıklamalara göre, bir sınıfın nesneleri için ortak olan ve nesne oluşturmadan doğrudan sınıf üzerinden çağrılabilen metotlar Static metotlardır.
Cevap B seçeneğidir.