LOLONOLO Ana Sayfa » blog » auzef » Nesneye Yönelik Programlama 2024-2025 Final Soruları
auzefBilgisayar ProgramcılığıNesneye Yönelik ProgramlamaYönetim Bilişim Sistemleri

Nesneye Yönelik Programlama 2024-2025 Final Soruları

Nesneye Yönelik Programlama 2024-2025 Final Soruları

 
LOLONOLO Ana Sayfa » blog » auzef » Nesneye Yönelik Programlama 2024-2025 Final Soruları

#1. Bir sınıfa (class) ait metotların farklı şekillerde kullanılmasını sağlayan yöntemin ismi aşağıdakilerden hangisidir?

Cevap : B) Çok Biçimlilik (Polymorphism)
Açıklama : “Çok Biçimlilik” (Polimorfizm), Nesneye Yönelik Programlamanın temel direklerinden biridir. Bir metodun (örn: AlanHesapla()) farklı alt sınıflarda (kare, daire) farklı şekillerde uygulanabilmesini (override edilmesi) veya aynı sınıfta farklı parametrelerle (overload edilmesi) kullanılabilmesini ifade eder.

#2. Bir yazılım projesinin tasarımında, fonksiyonel ihtiyaçlarının belirlendiği ve kayıt altına alınarak dokümantasyonun yapıldığı diyagramın ismi aşağıdakilerden hangisidir?

Cevap : B) Kullanım Senaryosu Diyagramı
Açıklama : UML diyagramlarından “Kullanım Senaryosu Diyagramı” (Use Case Diagram), bir yazılım sisteminin sunması gereken “fonksiyonel ihtiyaçları” aktör (kullanıcı) ve sistem etkileşimi (“kullanım senaryoları”) açısından gösteren diyagramdır. Sistemin “ne yapması gerektiğini” tanımlar.

#3. C# dilinde sıfıra bölme işlemi sırasında oluşan hata aşağıdakilerden hangisinde verilmiştir?

Cevap : C) DivideByZeroException
Açıklama : Programlama dillerinde, bir sayının sıfıra bölünmeye çalışılması matematiksel bir tanımsızlık oluşturur. C# dilinde bu durum gerçekleştiğinde, sistem System.DivideByZeroException (Sıfıra Bölme Hatası) türünde bir istisna (hata) fırlatır.

#4. C# Programlama Dilinde genel hata sınıfı aşağıdakilerden hangisinde verilmiştir?

Cevap : E) Exception
Açıklama : C# dilinde (ve .NET çatısında), programın çalışması sırasında meydana gelen tüm hatalar veya anormal durumlar “istisna” (Exception) olarak adlandırılır. Tüm hata sınıfları (DivideByZeroException, NullReferenceException vb.) System.Exception adlı bu genel (temel) sınıftan türer.

#5. Aşağıda verilenlerden hangisi koleksiyon türlerine örnektir?

Cevap : D) HashSet
Açıklama : Koleksiyon (Collection) türleri, birden fazla veriyi bir arada tutan gelişmiş veri yapılarıdır. Array (Dizi) temel bir yapıdır. String ve Int ilkel/temel veri türleridir. HashSet, List, Dictionary gibi yapılar C#’taki gelişmiş koleksiyon türlerine örnektir. HashSet, matematiksel küme mantığıyla çalışan, tekrarsız elemanları tutan bir koleksiyondur.

Öğrenme Yönetim Sistemi Öğrenci Dostu LOLONOLO bol bol deneme sınavı yapmayı önerir.

Console.Write(13+3); Console.Write(“,”);
Console.Write(13-2); Console.Write(“,”);
Console.Write(13*3); Console.Write(“,”);
Console.Write(13/2); Console.Write(“,”);
Console.Write(13.0/2.0); Console.Write(“,”);

#6. Yukarda verilen kod bloğu çalıştırıldığında üretilen çıktı aşağıdakilerden hangisinde verilmiştir?

Cevap : E) 16, 11, 39, 6, 6.5
Açıklama : C#’ta işlemlerin sonuçları:<br>13 3 = 16<br>13 – 2 = 11<br>13 * 3 = 39<br>13 / 2 = İki tamsayının (int) bölünmesi tamsayı (int) sonucunu verir: 6<br>13.0 / 2.0 = İki ondalıklı sayının (double) bölünmesi ondalıklı (double) sonuç verir: 6.5.<br>Çıktı: 16,11,39,6,6.5.

Nesneye yönelik Programlama soru 12

#7. Yukarda verilen metot, f(9) değeri için çağrıldığında nihai sonuç değeri kaç olur?

Cevap : D) 34
Açıklama : Kod, return f(n-1) f(n-2) ifadesini içerir. Bu, Fibonacci dizisinin özyinelemeli tanımıdır. <br>f(0)=0, f(1)=1, f(2)=1, f(3)=2, f(4)=3, f(5)=5, f(6)=8, f(7)=13, f(8)=21.<br>f(9) = f(8) f(7) = 21 13 = 34.

#8. C# Programlama Dilinde double türündeki bir değişkenin boyutu kaç byte’tır?

Cevap : D) 8
Açıklama : C# veri türlerinde: int (tamsayı) 4 byte yer kaplar. double (çift duyarlıklı ondalıklı sayı) ise int’in iki katı, yani 8 byte yer kaplar.

#9. ……… benzer türdeki nesnelerin parça-bütün ilişkisi içinde bir ağaç yapısı ile oluşturmaya ve tek bir arayüzden ulaşılmasına olanak sağlar.
Yukarıda tanımı verilen tasarım deseni için boş bırakılan yere aşağıdakilerden hangi ifade gelmelidir?

Cevap : E) Bileşik (Composite)
Açıklama : “Bileşik” (Composite) tasarım deseni, nesneleri hiyerarşik bir “ağaç yapısı” (tree structure) içinde düzenlemeye yarar. Bu desen sayesinde, hem tekil nesneler (yapraklar) hem de bu nesneleri içeren gruplar (dallar/bileşikler) aynı arayüzü kullanarak (“parça-bütün” ilişkisi) yönetilebilir.


public class Okul
{
public Okul() {
Console.WriteLine(“Okul”) ;
}
}

#10. Yukarda verilen örnek C# kod bloğunda yer alan “public Okul()” nesneye yönelik programlada hangi kavramı ifade eder?

Cevap : D) Yapıcı (Constructor)
Açıklama : Nesneye yönelik programlamada, sınıf (class) ile aynı isme sahip olan ve new anahtar kelimesi ile o sınıftan bir nesne oluşturulduğunda otomatik olarak çalışan özel metoda “Yapıcı Metot” (Constructor) denir. public Okul() ifadesi, Okul sınıfının yapıcı metodudur.

Öğrenme Yönetim Sistemi Öğrenci Dostu LOLONOLO bol bol deneme sınavı yapmayı önerir.

#11. Arabirimler (Interfaces) ile ilgili aşağıdaki verilen ifadelerden hangisi yanıştır?

Cevap : C) Yapılarda (struct) arabirim kullanmak mümkün değildir.
Açıklama : C# dilinde, hem Sınıflar (Class) hem de Yapılar (Struct) arabirimleri (interface) uygulayabilir. Bir yapının (struct) arabirim kullanması mümkündür. Bu nedenle C şıkkındaki ifade yanlıştır.

Nesneye Yönelik Programlama soru 9

#12. Yukarıda verilen IGenelIslemler arabiriminin, IDosyaIslem ve IGrafikIslem olarak yeniden yazılmasına karşılık gelen tasarım prensibi aşağıdakilerden hangisinde verilmiştir?

Cevap : A) Arabirim Ayırma Prensibi (Interface Segregation Principle)
Açıklama : SOLID prensiplerinden “I” harfine karşılık gelen “Arabirim Ayırma Prensibi”, büyük ve “şişman” arabirimlerin (IGenelIslemler gibi) bölünmesini savunur. Kodda, bu büyük arabirim, birbiriyle ilgisiz görevleri (dosya işlemleri ve grafik işlemleri) ayırarak iki küçük ve daha spesifik arabirime (IDosyaIslem, IGrafikIslem) bölünmüştür. Bu, tam olarak bu prensibin uygulanmasıdır.

#13.
I. Tekil (Singleton)
II. Fabrika (Factory)
III. Adaptör (Adapter)
IV. Gözlemci (Observer).
Yukarıda verilenlerden hangisi yada hangileri Oluşturucu (Creational) Tasarım Deseni kategorisine özgüdür?

Cevap : B) I ve II
Açıklama : Tasarım desenleri 3’e ayrılır: Oluşturucu (Creational): Nesne yaratma mekanizmalarıyla ilgilenir. Örnek: Tekil (Singleton), Fabrika (Factory). Yapısal (Structural): Örnek: Adaptör (Adapter). Davranışsal (Behavioral): Örnek: Gözlemci (Observer). Soruda Oluşturucu desenler sorulduğu için doğru cevap I ve II’dir.

#14. ……. takip edilmekte olan bir nesnede meydana gelen gelişmelerden diğer nesnelerin haberdar edildiği bir davranışsal tasarım desenidir.
Yukarıdaki ifadede boş bırakılan yere aşağıdakilerden hangisi gelmelidir?

Cevap : A) Gözlemci Tasarım Deseni
Açıklama : “Gözlemci” (Observer) tasarım deseni, bir nesnenin (Subject/Takip Edilen) durumunda bir değişiklik olduğunda, o nesneye abone olan/bağımlı olan diğer nesnelerin (Observers/Gözlemciler) otomatik olarak bilgilendirilmesini (haberdar edilmesini) sağlayan davranışsal bir desendir.

#15. C# programalma dili için verilen erişim denetleyicilerinin türetilmiş bir sınıfta erişim ile ilgili aşağıdakilerden hangisi vanıştır?

Cevap : A) private olan üyeler her yerden erişilir.
Açıklama : Erişim denetleyicilerinden private (özel), bir üyenin (metot veya değişken) sadece tanımlandığı sınıf içerisinden erişilebilir olmasını sağlar. Türetilmiş sınıflar veya dışarıdan herhangi bir kod bu üyeye erişemez. “Her yerden erişilir” ifadesi public için geçerlidir ve private için tamamen yanlıştır.

Öğrenme Yönetim Sistemi Öğrenci Dostu LOLONOLO bol bol deneme sınavı yapmayı önerir.

#16. Bridge (Köprü) Tasarım Deseninin temel kullanım amacı aşağıdakilerden hangisidir?

Cevap : E) İki ayrı sınıf hiyerarşisini birbirinden ayırarak bağımlılıkları azaltmayı amaçlar.
Açıklama : Bridge (Köprü) deseni, bir sınıfın “Soyutlama” (Abstraction) kısmını ve “Uygulama” (Implementation) kısmını iki ayrı hiyerarşi olarak ayırır. Bu sayede, bu iki hiyerarşi birbirine sıkı sıkıya bağlı olmadan, bağımsız olarak geliştirilebilir ve genişletilebilir.

Nesneye Yönelik Programlama Soru 5

#17. Şekilde verildiği üzere, istekler bir dizi seri boyunca iletilmesine olanak sağlanan bir tasarım deseni hangisidir?

Cevap : A) Sorumluluklar Zinciri (Chain Of Responsibility)
Açıklama : “Sorumluluklar Zinciri” (Chain of Responsibility) tasarım deseni, bir isteği (request) işleyebilecek bir dizi (zincir) nesne oluşturmaya dayanır. İstek zincire girer ve bir nesne tarafından işlenene veya zincirin sonuna ulaşana kadar nesneler arasında seri boyunca iletilir.

#18. Aşağıda verilenlerden hangisi bir Tasarım Deseni kategorisidir?

Cevap : C) Davraışsal (Behavioral)
Açıklama : Tasarım Desenleri (Design Patterns) üç ana kategoriye ayrılır: 1) Oluşturucu (Creational), 2) Yapısal (Structural) ve 3) Davranışsal (Behavioral). Diğer şıklar bu kategorilerin altındaki spesifik desen isimleridir.

Nesneye Yöenlik Programlama Soru 17

#19. Yukarda görseli verilen UML diyagramının ismi aşağıdakilerden hangisidir?

Cevap : B) Kullanım Senaryosu Diyagramı
Açıklama : Görselde, bir “Kullanıcı” (Actor – Çöp Adam simgesi) ile sistemin sunduğu “Ürünleri Listele”, “Ürün Detayı” ve “Ürün Karşılaştır” (Use Case – Elips simgeleri) fonksiyonel eylemleri arasındaki ilişki gösterilmektedir. Bu, UML’de “Kullanım Senaryosu Diyagramı” (Use Case Diagram) olarak adlandırılır.

#20. Aşağıdakilerden hangisi Nesneye Yönelik Tasarım Prensiplerinden (SOLID prensipleri) biri değildir?

Cevap : C) Kaynak Kod Yönetim Prensibi
Açıklama : SOLID, Nesneye Yönelik Programlamanın 5 temel prensibinin baş harflerinden oluşur: Single Responsibility (Tek Sorumluluk), Open/Close (Açık/Kapalı), Liskov Substitution (Liskov İkame), Interface Segregation (Arabirim Ayırma) ve Dependency Inversion (Bağımlılığı Tersine Çevirme). “Kaynak Kod Yönetim Prensibi” diye bir SOLID prensibi yoktur.

Öğrenme Yönetim Sistemi Öğrenci Dostu LOLONOLO bol bol deneme sınavı yapmayı önerir.

Öncesi
TESTi BiTiR, PUANINI GÖR

SONUÇ

Nesneye Yönelik Programlama 2024-2025 Final Soruları

Nesneye Yönelik Programlama 2024-2025 Final Soruları

Nesneye Yönelik Programlama 2024-2025 Final Soruları

Nesneye Yönelik Programlama: C# Dili, Tasarım Desenleri ve UML

Giriş

Nesneye Yönelik Programlama (NYP), yazılım geliştirmenin temelini oluşturan, gerçek dünya nesnelerini ve ilişkilerini modelleyen bir yaklaşımdır. C# gibi modern diller, bu yaklaşımı destekleyen güçlü araçlar sunar. Bu makalede, C# dilinin temel yapıları, tasarım desenleri (design patterns), SOLID prensipleri ve yazılım tasarımının görselleştirilmesi için kullanılan UML diyagramları incelenecektir.

C# Programlama Dili ve Temel Yapılar

  • Yapıcı (Constructor): Sınıf ile aynı isme sahip olan ve `new` anahtar kelimesiyle nesne oluşturulduğunda otomatik çalışan metottur. `public Okul()` ifadesi bir yapıcı metottur.
  • Veri Türleri ve Boyutlar: C# dilinde `double` türü bellekte 8 byte yer kaplar. “HashSet” ise, benzersiz elemanları tutan bir koleksiyon türüdür.
  • İşlemler: C#’ta tamsayı bölmesi (örn: `13 / 2`) tamsayı sonucu verirken (6), ondalıklı bölme (örn: `13.0 / 2.0`) ondalıklı sonuç verir (6.5).
  • Hata Yönetimi: Programın çalışması sırasında oluşan anormal durumlara “istisna” (Exception) denir. Tüm hataların temel sınıfı “System.Exception”dır. Örneğin, bir sayının sıfıra bölünmesi durumunda “DivideByZeroException” hatası fırlatılır.
  • Erişim Belirleyiciler: `private` üyeler sadece tanımlandıkları sınıf içinde erişilebilir; “her yerden erişilebilir” ifadesi yanlıştır.
  • Özyineleme (Recursion): Bir metodun kendini çağırmasıdır. Fibonacci dizisini hesaplayan bir `f(n)` metodu için `f(9)` değeri 34 sonucunu verir.

Tasarım Desenleri (Design Patterns)

Yazılım geliştirmede karşılaşılan ortak sorunlara getirilen standart çözümlerdir.

  • Oluşturucu (Creational) Desenler: Nesne yaratma mekanizmalarıyla ilgilenir. Tekil (Singleton) ve Fabrika (Factory) bu kategoriye girer.
  • Yapısal (Structural) Desenler: Nesnelerin nasıl birleştirildiğini inceler. Bileşik (Composite) deseni, nesneleri “ağaç yapısı” içinde (parça-bütün ilişkisi) düzenlemeye yarar. Köprü (Bridge) deseni ise soyutlama ve uygulamayı iki ayrı hiyerarşi olarak ayırarak bağımsız geliştirilebilmelerini sağlar.
  • Davranışsal (Behavioral) Desenler: Nesnelerin iletişimini düzenler. Gözlemci (Observer) deseni, bir nesnedeki değişikliğin diğerlerine otomatik bildirilmesini sağlar. Sorumluluklar Zinciri (Chain of Responsibility) deseni ise isteklerin bir dizi nesne (zincir) boyunca iletilmesine olanak tanır.

SOLID Prensipleri ve UML

SOLID: Yazılımın esnekliğini ve sürdürülebilirliğini artıran 5 temel prensiptir. “Arabirim Ayırma Prensibi” (Interface Segregation), büyük ve karmaşık arabirimlerin (örn: IGenelIslemler) daha küçük ve spesifik parçalara (IDosyaIslem, IGrafikIslem) bölünmesini savunur. “Kaynak Kod Yönetim Prensibi” diye bir SOLID prensibi yoktur.

UML (Unified Modeling Language): Yazılım tasarımını görselleştirmek için kullanılır. Bir sistemin “fonksiyonel ihtiyaçlarını” (ne yapması gerektiğini) aktör ve sistem etkileşimi üzerinden gösteren diyagrama “Kullanım Senaryosu Diyagramı” (Use Case Diagram) denir.

NYP Kavramları: Çok Biçimlilik ve Arabirimler

Çok Biçimlilik (Polymorphism): Bir metoda farklı sınıflarda farklı şekillerde davranma yeteneği kazandıran temel NYP özelliğidir. Arabirimler (Interfaces) ise, bir sınıfın hangi metotları içereceğini tanımlayan şablonlardır. Hem sınıflar hem de yapılar (struct) arabirim kullanabilir; “yapılarda arabirim kullanmak mümkün değildir” ifadesi yanlıştır.

@lolonolo_com

Nesneye Yönelik Programlama 2024-2025 Final Soruları

 

Nesneye Yönelik Programlama 2024-2025 Final Soruları

1.


public class Okul 
{ 
public Okul() { 
Console.WriteLine("Okul") ;
} 
}

Yukarda verilen örnek C# kod bloğunda yer alan “public Okul()” nesneye yönelik programlada hangi kavramı ifade eder?

A) Hata Yakalama (Exception Handling)

B) Yıkıcı (Destructor)

C) Kalıtım (Inheritance)

D) Yapıcı (Constructor)

E) Hata Ayıklama (Debug)

Cevap : D) Yapıcı (Constructor)

Açıklama : Nesneye yönelik programlamada, sınıf (class) ile aynı isme sahip olan ve new anahtar kelimesi ile o sınıftan bir nesne oluşturulduğunda otomatik olarak çalışan özel metoda “Yapıcı Metot” (Constructor) denir. public Okul() ifadesi, Okul sınıfının yapıcı metodudur.

2. Aşağıda verilenlerden hangisi koleksiyon türlerine örnektir?

A) String

B) Int

C) Class

D) HashSet

E) Array

Cevap : D) HashSet

Açıklama : Koleksiyon (Collection) türleri, birden fazla veriyi bir arada tutan gelişmiş veri yapılarıdır. Array (Dizi) temel bir yapıdır. String ve Int ilkel/temel veri türleridir. HashSet, List, Dictionary gibi yapılar C#’taki gelişmiş koleksiyon türlerine örnektir. HashSet, matematiksel küme mantığıyla çalışan, tekrarsız elemanları tutan bir koleksiyondur.

3. C# dilinde sıfıra bölme işlemi sırasında oluşan hata aşağıdakilerden hangisinde verilmiştir?

A) ApplicationException

B) StackOverflowException

C) DivideByZeroException

D) EntryPointNotFoundException

E) EndOfStreamException

Cevap : C) DivideByZeroException

Açıklama : Programlama dillerinde, bir sayının sıfıra bölünmeye çalışılması matematiksel bir tanımsızlık oluşturur. C# dilinde bu durum gerçekleştiğinde, sistem System.DivideByZeroException (Sıfıra Bölme Hatası) türünde bir istisna (hata) fırlatır.

4. C# programalma dili için verilen erişim denetleyicilerinin türetilmiş bir sınıfta erişim ile ilgili aşağıdakilerden hangisi vanıştır?

A) private olan üyeler her yerden erişilir.

B) private olan üyeler sadece kendi sınıfından erişilir.

C) Özellikler ve metotlar public olan tanımlanabilir.

D) protected olan üyeler kendisi ve sadece türetilen sınıflarda erişilir.

E) public olan üyeler kendisi ve türetilmiş sınıflarda ve türetilmiş sınıfların public arayüzleriden erişilebilir.

Cevap : A) private olan üyeler her yerden erişilir.

Açıklama : Erişim denetleyicilerinden private (özel), bir üyenin (metot veya değişken) sadece tanımlandığı sınıf içerisinden erişilebilir olmasını sağlar. Türetilmiş sınıflar veya dışarıdan herhangi bir kod bu üyeye erişemez. “Her yerden erişilir” ifadesi public için geçerlidir ve private için tamamen yanlıştır.

5.

Nesneye Yönelik Programlama Soru 5

Şekilde verildiği üzere, istekler bir dizi seri boyunca iletilmesine olanak sağlanan bir tasarım deseni hangisidir?

A) Sorumluluklar Zinciri (Chain Of Responsibility)

B) Köprü (Bridge)

C) Bileşik (Composite)

D) Cephe (Facade)

E) Dekoratör (Decorator)

Cevap : A) Sorumluluklar Zinciri (Chain Of Responsibility)

Açıklama : “Sorumluluklar Zinciri” (Chain of Responsibility) tasarım deseni, bir isteği (request) işleyebilecek bir dizi (zincir) nesne oluşturmaya dayanır. İstek zincire girer ve bir nesne tarafından işlenene veya zincirin sonuna ulaşana kadar nesneler arasında seri boyunca iletilir.

6. Aşağıdakilerden hangisi Nesneye Yönelik Tasarım Prensiplerinden (SOLID prensipleri) biri değildir?

A) Liskov İkame Prensibi (Liskov Substitution Principle)

B) Tek Sorumluluk Prensibi (Single Responsibility Principle)

C) Kaynak Kod Yönetim Prensibi

D) Açık Kapalı Prensibi (Open/Close Principle)

E) Arabirim Ayırma Prensibi (Interface Segregation Principle)

Cevap : C) Kaynak Kod Yönetim Prensibi

Açıklama : SOLID, Nesneye Yönelik Programlamanın 5 temel prensibinin baş harflerinden oluşur: Single Responsibility (Tek Sorumluluk), Open/Close (Açık/Kapalı), Liskov Substitution (Liskov İkame), Interface Segregation (Arabirim Ayırma) ve Dependency Inversion (Bağımlılığı Tersine Çevirme). “Kaynak Kod Yönetim Prensibi” diye bir SOLID prensibi yoktur.

7. …….. takip edilmekte olan bir nesnede meydana gelen gelişmelerden diğer nesnelerin haberdar edildiği bir davranışsal tasarım desenidir.
Yukarıdaki ifadede boş bırakılan yere aşağıdakilerden hangisi gelmelidir?

A) Gözlemci Tasarım Deseni

B) Tekil Tasarım Deseni

C) Vekil Tasarım Deseni

D) Köprü Tasarım Deseni

E) Fabrika Tasarım Deseni

Cevap : A) Gözlemci Tasarım Deseni

Açıklama : “Gözlemci” (Observer) tasarım deseni, bir nesnenin (Subject/Takip Edilen) durumunda bir değişiklik olduğunda, o nesneye abone olan/bağımlı olan diğer nesnelerin (Observers/Gözlemciler) otomatik olarak bilgilendirilmesini (haberdar edilmesini) sağlayan davranışsal bir desendir.

8. Bir yazılım projesinin tasarımında, fonksiyonel ihtiyaçlarının belirlendiği ve kayıt altına alınarak dokümantasyonun yapıldığı diyagramın ismi aşağıdakilerden hangisidir?

A) Bileşen Diyagramı

B) Kullanım Senaryosu Diyagramı

C) Dağıtım Diyagramı

D) Faaliyet Diyagramı

E) Sınıf Diyagramı

Cevap : B) Kullanım Senaryosu Diyagramı

Açıklama : UML diyagramlarından “Kullanım Senaryosu Diyagramı” (Use Case Diagram), bir yazılım sisteminin sunması gereken “fonksiyonel ihtiyaçları” aktör (kullanıcı) ve sistem etkileşimi (“kullanım senaryoları”) açısından gösteren diyagramdır. Sistemin “ne yapması gerektiğini” tanımlar.

9.

Nesneye Yönelik Programlama soru 9

Yukarıda verilen IGenelIslemler arabiriminin, IDosyaIslem ve IGrafikIslem olarak yeniden yazılmasına karşılık gelen tasarım prensibi aşağıdakilerden hangisinde verilmiştir?

A) Arabirim Ayırma Prensibi (Interface Segregation Principle)

B) Liskov İkame Prensibi (Liskov Substitution Principle)

C) Açık/Kapalı Prensibi (Open/Close Principle)

D) Bağımlılığı Tersine Çevirme Prensibi (Dependency Inversion Principle)

E) Tek Sorumluluk Prensibi (Single Responsibility Principle)

Cevap : A) Arabirim Ayırma Prensibi (Interface Segregation Principle)

Açıklama : SOLID prensiplerinden “I” harfine karşılık gelen “Arabirim Ayırma Prensibi”, büyük ve “şişman” arabirimlerin (IGenelIslemler gibi hem dosya hem grafik işlemi içeren) bölünmesini savunur. Kodda, bu büyük arabirim, birbiriyle ilgisiz görevleri (dosya işlemleri ve grafik işlemleri) ayırarak iki küçük ve daha spesifik arabirime (IDosyaIslem, IGrafikIslem) bölünmüştür. Bu, tam olarak bu prensibin uygulanmasıdır.

10.


Console.Write(13+3); Console.Write(",");
Console.Write(13-2); Console.Write(","); 
Console.Write(13*3); Console.Write(","); 
Console.Write(13/2); Console.Write(","); 
Console.Write(13.0/2.0); Console.Write(","); 

Yukarda verilen kod bloğu çalıştırıldığında üretilen çıktı aşağıdakilerden hangisinde verilmiştir?

A) 16, 15, 39, 6.5, 6.5

B) 16, 11, 39, 6, 6

C) 16, 11, 133, 6.5, 6.5

D) 16, 11, 39, 6.5, 6.5

E) 16, 11, 39, 6, 6.5

Cevap : E) 16, 11, 39, 6, 6.5

Açıklama : C#’ta işlemlerin sonuçları:

13 + 3 = 16

13 – 2 = 11

13 * 3 = 39

13 / 2 = İki tamsayının (int) bölünmesi tamsayı (int) sonucunu verir. 6.5’in ondalık kısmı atılır, sonuç 6 olur.

13.0 / 2.0 = İki ondalıklı sayının (double) bölünmesi ondalıklı (double) sonuç verir: 6.5. Çıktı: 16,11,39,6,6.5, (Not: Son şıkta fazladan virgül var, ancak sayılar E şıkkıyla eşleşiyor).

11. Bir sınıfa (class) ait metotların farklı şekillerde kullanılmasını sağlayan yöntemin ismi aşağıdakilerden hangisidir?

A) Erişim Denetleyiciler (Access Modifiers)

B) Çok Biçimlilik (Polymorphism)

C) Arabirim (Interface)

D) Yineleyici (Iterator)

E) Hata Yakalama (Exception Handling)

Cevap : B) Çok Biçimlilik (Polymorphism)

Açıklama : “Çok Biçimlilik” (Polimorfizm), Nesneye Yönelik Programlamanın temel direklerinden biridir. Bir metodun (örn: AlanHesapla()) farklı alt sınıflarda (kare, daire) farklı şekillerde uygulanabilmesini (override edilmesi) veya aynı sınıfta farklı parametrelerle (overload edilmesi) kullanılabilmesini ifade eder.

12.

Nesneye yönelik Programlama soru 12

Yukarda verilen metot, f(9) değeri için çağrıldığında nihai sonuç değeri kaç olur?

A) 13

B) 43

C) 24

D) 34

E) 54

Cevap : D) 34

Açıklama : Kod, return f(n-1) + f(n-2) ifadesini içerir. Bu, Fibonacci dizisinin özyinelemeli tanımıdır. f(0) = 0 (n<=1), f(1) = 1 f(2) = f(1) + f(0) = 1 f(3) = f(2) + f(1) = 2 f(4) = f(3) + f(2) = 3 f(5) = f(4) + f(3) = 5 f(6) = f(5) + f(4) = 8 f(7) = f(6) + f(5) = 13 f(8) = f(7) + f(6) = 21 f(9) = f(8) + f(7) = 21 + 13 = 34.

13. ….. benzer türdeki nesnelerin parça-bütün ilişkisi içinde bir ağaç yapısı ile oluşturmaya ve tek bir arayüzden ulaşılmasına olanak sağlar.
Yukarıda tanımı verilen tasarım deseni için boş bırakılan yere aşağıdakilerden hangi ifade gelmelidir?

A) Yapısal (Structural)

B) Oluşturucu (Creational)

C) Fabrika (Factory)

D) Yapıcı (Builder)

E) Bileşik (Composite)

Cevap : E) Bileşik (Composite)

Açıklama : “Bileşik” (Composite) tasarım deseni, nesneleri hiyerarşik bir “ağaç yapısı” (tree structure) içinde düzenlemeye yarar. Bu desen sayesinde, hem tekil nesneler (yapraklar) hem de bu nesneleri içeren gruplar (dallar/bileşikler) aynı arayüzü kullanarak (“parça-bütün” ilişkisi) yönetilebilir.

14. C# Programlama Dilinde genel hata sınıfı aşağıdakilerden hangisinde verilmiştir?

A) Collections

B) Generics

C) DateTime

D) Math

E) Exception

Cevap : E) Exception

Açıklama : C# dilinde (ve .NET çatısında), programın çalışması sırasında meydana gelen tüm hatalar veya anormal durumlar “istisna” (Exception) olarak adlandırılır. Tüm hata sınıfları (DivideByZeroException, NullReferenceException vb.) System.Exception adlı bu genel (temel) sınıftan türer.

15. Aşağıda verilenlerden hangisi bir Tasarım Deseni kategorisidir?

A) Fabrika (Factory)

B) Vekil (Proxy)

C) Davraışsal (Behavioral)

D) Yapıcı (Builder)

E) Soyut Fabrika (Abstract Factory)

Cevap : C) Davraışsal (Behavioral)

Açıklama : Tasarım Desenleri (Design Patterns) üç ana kategoriye ayrılır: 1) Oluşturucu (Creational – nesne yaratmayla ilgili), 2) Yapısal (Structural – nesnelerin ilişkisiyle ilgili) ve 3) Davranışsal (Behavioral – nesnelerin iletişimiyle ilgili). Diğer şıklar bu kategorilerin altındaki spesifik desen isimleridir.

16. Arabirimler (Interfaces) ile ilgili aşağıdaki verilen ifadelerden hangisi yanıştır?

A) Arabirim içinde tanımlanan tüm üyelerin erişim seviyesi public’tir.

B) Arabirim tanımı yapılırken interface anahtar kelimesi kullanılır.

C) Yapılarda (struct) arabirim kullanmak mümkün değildir.

D) Bir arabirimi kullanmak için sınıflara (class) ihtiyaç duyarız.

E) Bir sınıf (class) birden fazla arabirim kullanabilir.

Cevap : C) Yapılarda (struct) arabirim kullanmak mümkün değildir.

Açıklama : C# dilinde, hem Sınıflar (Class) hem de Yapılar (Struct) arabirimleri (interface) uygulayabilir. Bir yapının (struct) arabirim kullanması mümkündür. Bu nedenle C şıkkındaki ifade yanlıştır.

17.

Nesneye Yöenlik Programlama Soru 17

Yukarda görseli verilen UML diyagramının ismi aşağıdakilerden hangisidir?

A) Sınıf Diyagramı

B) Kullanım Senaryosu Diyagramı

C) Bileşen Diyagramı

D) Sıra Diyagramı

E) Faaliyet Diyagramı

Cevap : B) Kullanım Senaryosu Diyagramı

Açıklama : Görselde, bir “Kullanıcı” (Actor – Çöp Adam simgesi) ile sistemin sunduğu “Ürünleri Listele”, “Ürün Detayı” ve “Ürün Karşılaştır” (Use Case – Elips simgeleri) fonksiyonel eylemleri arasındaki ilişki gösterilmektedir. Bu, UML’de “Kullanım Senaryosu Diyagramı” (Use Case Diagram) olarak adlandırılır.

18. C# Programlama Dilinde double türündeki bir değişkenin boyutu kaç byte’tır?

A) 1

B) 2

C) 4

D) 8

E) 16

Cevap : D) 8

Açıklama : C# veri türlerinde: int (tamsayı) 4 byte yer kaplar. double (çift duyarlıklı ondalıklı sayı) ise int’in iki katı, yani 8 byte yer kaplar.

19. Bridge (Köprü) Tasarım Deseninin temel kullanım amacı aşağıdakilerden hangisidir?

A) Sınıflar arasında doğrudan bir bağlantı kurarak esneklik sağlamayı amaçlar.

B) Soyutlama yerine somutlaştırmayı amaçlar.

C) Nesnelerin davranışlarını sabit (statik) bir şekilde tutmayı amaçlar.

D) Tüm sınıfların bir arada kullanılabilmesini sağlamayı amaçlar.

E) İki ayrı sınıf hiyerarşisini birbirinden ayırarak bağımlılıkları azaltmayı amaçlar.

Cevap : E) İki ayrı sınıf hiyerarşisini birbirinden ayırarak bağımlılıkları azaltmayı amaçlar.

Açıklama : Bridge (Köprü) deseni, bir sınıfın “Soyutlama” (Abstraction) kısmını (örn: Uzaktan Kumanda) ve “Uygulama” (Implementation) kısmını (örn: Televizyon, Radyo) iki ayrı hiyerarşi olarak ayırır. Bu sayede, bu iki hiyerarşi birbirine sıkı sıkıya bağlı olmadan, bağımsız olarak geliştirilebilir ve genişletilebilir.

20.
I. Tekil (Singleton)
II. Fabrika (Factory)
III. Adaptör (Adapter)
IV. Gözlemci (Observer).
Yukarıda verilenlerden hangisi yada hangileri Oluşturucu (Creational) Tasarım Deseni kategorisine özgüdür?

A) Yalnız I

B) I ve II

C) Yalnız II

D) I ve IV

E) I, II, III, IV

Cevap : B) I ve II

Açıklama : Tasarım desenleri 3’e ayrılır:

Oluşturucu (Creational): Nesne yaratma mekanizmalarıyla ilgilenir. Örnek: Tekil (Singleton), Fabrika (Factory).

Yapısal (Structural): Sınıf ve nesne birleşimiyle ilgilenir. Örnek: Adaptör (Adapter).

Davranışsal (Behavioral): Nesne iletişimiyle ilgilenir. Örnek: Gözlemci (Observer). Soruda Oluşturucu desenler sorulduğu için doğru cevap I ve II’dir.

@lolonolo_com

Nesneye Yönelik Programlama 2024-2025 Final Soruları

 

Nesneye Yönelik Programlama, Yapısal (structural) Tasarım Desenleri Yönetim Bilişim Sistemleri Lisans

Nesneye Yönelik Programlama 2024-2025 Final Soruları

Editor

Editör