Ara Sınav (Vize) 10 soru

Nesneye Yönelik Programlama Vize Deneme Sınavı -7

Kaynak: https://lolonolo.com/2022/08/11/nesneye-yonelik-programlama-vize-deneme-sinavi-7/

📖 Konu özeti (sınav öncesi tekrar)

Nesneye Yönelik Programlama Vize Sınav Soruları -7

Nesneye Yönelik Programlama Vize Sınav Soruları -7

10 soru
Şıkka dokun, anında açıklamasını gör — ya da çalışma modunda tüm cevapları aç.
Soru 1
Nesneye Yönelik Programlama ile Fonksiyonel Programlama arasındaki fark aşağıdakilerden hangisinde verilmiştir?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Nesneye yönelik programlamada veri ile bu veri üzerinde çalışan metotlar nesnelerin içinde birlikte tutulur. Her nesne kendisiyle ilgili veriyi barındırır. Kalıtım, abstract sınıf ve nesne gibi kavramlar ise nesneye yönelik programlamaya özgüdür, fonksiyonel programlamada bulunmaz; bu yüzden B, C ve D yanlıştır.

Soru 2
C# Programalama Dilinde türetilmiş bir sınıft tanımlamak için aşağıdaki anahtar kelimelerden hangisi kullanılır?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Türetilmiş sınıf da sonuçta bir sınıftır ve class anahtar kelimesiyle tanımlanır. Temel sınıf iki nokta ile belirtilir: class Ogrenci : Kisi { }. interface sınıf değil ara birim tanımlar.

Soru 3
Aşağıda verilenden hangisi Nesneye Yönelik Programlamanın kavramlarından biri değildir?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Kalıtım, abstract sınıflar, bilgi saklama ve kolay hata ayıklama, nesneye yönelik programlamanın kavramları ve faydaları arasındadır. "Zor kod geliştirme" ise bu yaklaşımın bir kavramı değildir. Nesneye yönelik programlamanın amacı, aksine geliştirmeyi kolaylaştırmaktır.

Soru 4
C# programalma dili için verilen erişim denetleyicilerinin türetilmiş bir sınıfta erişim ile ilgil hangisi yanlıştır?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Soru yanlış olan ifadeyi soruyor. private üyelere yalnızca tanımlandıkları sınıfın içinden erişilebilir, türetilmiş sınıflar bile bu üyelere erişemez. Bu yüzden "private üyeler her yerden erişilir" ifadesi yanlıştır. D şıkkı ise bunun doğru tanımıdır.

Soru 5
C# programlama dili için aşağıdaki verilenlerden hangisi doğrudur?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

abstract sınıflar tamamlanmamış sınıflardır ve new ile doğrudan nesne üretilemez; ancak türetilen somut alt sınıflar aracılığıyla kullanılırlar. Abstract sınıflardan kalıtım alınabilir ve bu sınıflar yapıcı (constructor) içerebilir, bu yüzden D ve E yanlıştır. C#'ta çoklu sınıf kalıtımı da yoktur.

Soru 6
Kalıtım yoluyla türetilmiş bir sınıf, temel sınıfta var olan bir metotu yeniden tanımlamak istersen aşağıdaki anahtar kelimelerde hangisi kullanır?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Türetilmiş sınıfta temel sınıftaki bir metotla aynı imzaya sahip yeni bir metot tanımlanırken new anahtar kelimesi kullanılır. Bu işleme metot gizleme (method hiding) denir ve temel sınıftaki metot gizlenir. Temel metot virtual olsaydı override ile de ezilebilirdi, ancak şıklar arasındaki doğru anahtar kelime new'dur.

Soru 7
protected erişim denetleyicisine sahip bir üye için aşağıdaki ifadelerde hangisi doğrudur?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

protected üyelere tanımlandıkları sınıfın içinden ve o sınıftan türetilen alt sınıfların içinden erişilebilir. Dış sınıflar bu üyelere erişemez. A şıkkı public belirleyicisini, B şıkkı ise private belirleyicisini tanımlar.

Soru 8
I – Kalıtım yolu ile sadece bir sınıf türetilebilir.
II – Kalıtım yolu ile türetilen sınıf temel sınıfın yapıcısnı çağırabilir.
III – Yapıcılar (constructor) bir sonuç dönderirler.
C# programlama dilinde sınıflar (class) ile ilgili verilen ifadelerden hangisi doğrudur?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

C#'ta bir sınıf yalnızca bir temel sınıftan kalıtım alabilir, yani tekli kalıtım vardır (I). Türetilen sınıf, temel sınıfın yapıcısını base(...) ile çağırabilir (II). Yapıcıların dönüş türü olmadığı için değer döndürmezler, bu yüzden III yanlıştır ve cevap I ve II'dir.

Soru 9
I – Kalıtım yolu ile türetilen sınıflarda yapıcı tanımlanamaz.
II – Yıkıcılar (destructor) parametre alabilirler.
III – Yıkıcılar (destructor) bir sonuç dönderirler.
C# programlama dilinde yıkıcılar (destructor) ile ilgili verilen ifadelerden hangisi veya hangileri yanlıştır?
EDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Soru yanlış olan ifadeleri soruyor. Türetilmiş sınıflarda da yapıcı tanımlanabilir, bu yüzden I yanlıştır. Yıkıcılar (~Sinif()) parametre almaz, bu yüzden II yanlıştır. Yıkıcıların dönüş türü de yoktur, bu yüzden III de yanlıştır. Üç ifade de yanlış olduğu için cevap E'dir.

Soru 10
I – Sınıflar (class) referans türündedirler
II – Yapılar (struct) değer türündedirler.
III – Sınıf (class) ve yapı (struct) arasında bir fark yoktur.
C# programlama dilinde Kalıtım yoluyla oluşturulan sınıf (class) ve/veya yapılar (struct) ile ilgili verilen ifadelerden hangisi doğrudur?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

C#'ta sınıflar referans türü, yapılar (struct) ise değer türüdür. Kalıtım da bu ayrımı değiştirmez. İkisi arasında kopyalanma biçimi ve kalıtım desteği gibi önemli farklar olduğu için III yanlıştır.