Menu
Coddy logo textTech

Nesne Başlatıcılar

Coddy'nin C# Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 8 / 70.

Nesne başlatıcılar, çok sayıda parametreye sahip bir yapıcıyı çağırmaya gerek kalmadan, bir nesne oluştururken özellik değerlerini ayarlamak için kullanışlı bir yol sağlar.

Constructor kullanan geleneksel yöntem

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string City { get; set; }
}

Person person = new Person();
person.Name = "Alice";
person.Age = 25;
person.City = "New York";

Nesne başlatıcı sözdizimini kullanma

Person person = new Person
{
    Name = "Alice",
    Age = 25,
    City = "New York"
};

Yapıcı metotlar ile nesne başlatıcılar

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string City { get; set; }
    
    public Person(string name)
    {
        Name = name;
    }
}

// Yapıcı metot Name'i ayarlar, başlatıcı diğer özellikleri ayarlar
Person person = new Person("Bob")
{
    Age = 30,
    City = "London"
};

İç içe geçmiş nesne başlatıcıları

public class Address
{
    public string Street { get; set; }
    public string City { get; set; }
}

public class Person
{
    public string Name { get; set; }
    public Address Address { get; set; }
}

Person person = new Person
{
    Name = "Charlie",
    Address = new Address
    {
        Street = "123 Main St",
        City = "Boston"
    }
};

Başlatıcılar ile birden fazla nesne oluşturma

Person person1 = new Person { Name = "Alice", Age = 25 };
Person person2 = new Person { Name = "Bob", Age = 30 };
Person person3 = new Person { Name = "Charlie", Age = 35 };

Nesne başlatıcılar kodu daha temiz ve daha okunabilir hale getirir. Özellikler, yapıcı (constructor) çalıştıktan sonra ayarlanır. Başlatıcıları yapıcı parametreleri ile veya parametreleri olmadan kullanabilirsiniz; bu da nesne oluşturmayı esnek ve kısa hale getirir.

challenge icon

Görev

Orta

Farklı nesne ilklendirici (object initializer) yaklaşımlarını kullanarak üç adet Student nesnesi oluşturun:

  • student1: Tüm özellikleri (Name, StudentId, Major, GPA) girdiden ayarlamak için nesne ilklendirici ile varsayılan yapıcıyı kullanın
  • student2: Yalnızca Name = "Bob" ve Major = "Engineering" değerlerini ayarlamak için nesne ilklendirici kullanın
  • student3: Parametre olarak "Charlie" değerini alan yapıcıyı kullanın, ardından StudentId = 54321, Major = "Mathematics", GPA = 3.5 değerlerini ayarlamak için nesne ilklendirici kullanın

Kopya kağıdı

Nesne başlatıcılar (object initializers), bir nesne oluştururken özellik değerlerini ayarlamak için kullanışlı bir yol sağlar:

Person person = new Person
{
    Name = "Alice",
    Age = 25,
    City = "New York"
};

Nesne başlatıcılar, yapıcı metotlarla (constructors) birleştirilebilir:

Person person = new Person("Bob")
{
    Age = 30,
    City = "London"
};

İç içe geçmiş nesne başlatıcılar, iç içe geçmiş nesnelerin özelliklerinin ayarlanmasına olanak tanır:

Person person = new Person
{
    Name = "Charlie",
    Address = new Address
    {
        Street = "123 Main St",
        City = "Boston"
    }
};

Birden fazla nesne kısa ve öz bir şekilde oluşturulabilir:

Person person1 = new Person { Name = "Alice", Age = 25 };
Person person2 = new Person { Name = "Bob", Age = 30 };

Kendin dene

using System;

class Program
{
    static void Main()
    {
        string name = Console.ReadLine();
        int studentId = int.Parse(Console.ReadLine());
        string major = Console.ReadLine();
        double gpa = double.Parse(Console.ReadLine());
        
        // YAPILACAK: Tüm özellikleri içeren nesne başlatıcıyı kullanarak student1'i oluşturun
        // Varsayılan yapıcıyı kullanın ve Name, StudentId, Major ve GPA değerlerini ayarlayın
        
        // YAPILACAK: Sadece Name ve Major özelliklerini içeren nesne başlatıcıyı kullanarak student2'yi oluşturun
        // Name "Bob", Major "Engineering" olmalıdır
        
        // YAPILACAK: "Charlie" isim parametresine sahip yapıcıyı kullanarak student3'ü oluşturun
        // Ardından StudentId = 54321, Major = "Mathematics", GPA = 3.5 değerlerini ayarlamak için nesne başlatıcıyı kullanın
        
        Console.WriteLine($"Student 1: {student1.Name} (ID: {student1.StudentId}) - {student1.Major}, GPA: {student1.GPA}");
        Console.WriteLine($"Student 2: {student2.Name} (ID: {student2.StudentId}) - {student2.Major}, GPA: {student2.GPA}");
        Console.WriteLine($"Student 3: {student3.Name} (ID: {student3.StudentId}) - {student3.Major}, GPA: {student3.GPA}");
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler