Ara Sınav (Vize) 10 soru

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

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

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

Nesneye Yönelik Programlama Soruları Vize Deneme Sınavı -6

Nesneye Yönelik Programlama Soruları Vize Deneme Sınavı -6

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?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Nesneye yönelik programlamada veri ve bu veri üzerinde çalışan metotlar bir arada, nesnelerin içinde tutulur; yani her nesne kendisiyle ilgili veriyi barındırır. Fonksiyonel programlamada ise ağırlık, değişmez veri üzerinde çalışan saf fonksiyonlardadır. Diğer şıklar yanlıştır; örneğin nesneye yönelik programlamada da fonksiyonlar (metotlar) tanımlanır.

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

C#'ta sınıf class anahtar kelimesiyle tanımlanır, örneğin class Ogrenci { }. namespace isim alanı, interface ise ara birim tanımlar. Main programın giriş metodudur, function ise C#'ta bir anahtar kelime değildir.

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

Nesneye yönelik programlama; modülerlik, tekrar kullanılabilirlik, bilgi saklama (kapsülleme) ve kolay hata ayıklama gibi faydalar sağlar. "Zor kod geliştirme" bir fayda olamaz. Bu yaklaşım, aksine kod geliştirmeyi ve bakımını kolaylaştırmayı amaçlar.

Soru 4
C# programalma dili için verilen erişim denetleyicilerden hangisi yanlıştır?
DDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

C#'taki erişim belirleyiciler şunlardır: public, private, protected, internal, protected internal ve private protected. "protected global" diye bir erişim belirleyici yoktur.

Soru 5
private erişim denetleyicisi için aşağıdaki ifadelerde hangisi doğrudur?
BDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

private erişim belirleyicisine sahip üyelere yalnızca tanımlandıkları sınıf veya yapının içinden erişilebilir. C#'ta sınıf üyeleri için varsayılan erişim düzeyi de budur. Türetilmiş sınıflardan erişimi açan belirleyici protected, aynı derlemeden erişimi açan ise internal'dır.

Soru 6
public erişim denetleyicisi için aşağıdaki ifadelerde hangisi doğrudur?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

public en geniş erişim düzeyidir. Bu belirleyiciye sahip tür ve üyelere diğer sınıflardan, hatta başka derlemelerden (assembly) de erişilebilir. B şıkkı private, C şıkkı protected, D şıkkı ise internal belirleyicisini tanımlar.

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

protected erişim belirleyicisine sahip üyelere tanımlandığı sınıfın içinden ve o sınıftan türetilen alt sınıfların içinden erişilebilir. Dışarıdaki ilgisiz sınıflar bu üyelere erişemez. Bu belirleyici, kalıtımda alt sınıflarla veri paylaşmak için kullanılır.

Soru 8
I – Bir sınıf içinde birden fazla tanımlanabilir.
II – Yapıcılar (constructor) parametre alabilirler.
III – Yapıcılar (constructor) bir sonuç dönderirler.
C# programlama dilinde yapıcılar (constructor) ile ilgili verilen ifadelerden hangisi doğrudur?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

Bir sınıfta, farklı parametre listeleriyle birden fazla yapıcı (constructor) tanımlanabilir; buna yapıcı aşırı yükleme denir (I). Yapıcılar parametre alabilir (II). Ancak yapıcıların dönüş türü yoktur, void bile yazılmaz ve değer döndürmezler; bu yüzden III yanlıştır.

Soru 9
I – Bir sınıf içinde sadece bir kez tanımlanabilir.
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 doğrudur?
ADoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

C#'ta bir sınıfta yalnızca bir yıkıcı (destructor, ~SinifAdi()) tanımlanabilir. Yıkıcılar parametre almaz, bu yüzden aşırı yüklenemez. Dönüş türleri de olmadığı için değer döndürmezler. Bu nedenle yalnız I doğrudur.

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 sınıf (class) ve yapı (struct) ile ilgili verilen ifadelerden hangisi doğrudur?
CDoğru cevap
Açıklama 🤖 Yapay zekâ açıklaması

C#'ta sınıflar (class) referans türüdür, yapılar (struct) ise değer türüdür. Bu fark, atama ve parametre geçişinde belirgin olur: struct kopyalanır, class'ta ise aynı nesneye referans paylaşılır. Bu yüzden III yanlıştır ve doğru cevap I ve II'dir.