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 parametre içeren bir oluşturucu çağırmadan 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öz dizimini kullanma
Person person = new Person
{
Name = "Alice",
Age = 25,
City = "New York"
};Kurucularla 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;
}
}
// Constructor, Name özelliğini ayarlar; başlatıcı diğer özellikleri ayarlar
Person person = new Person("Bob")
{
Age = 30,
City = "London"
};İç içe 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ılarla birden çok 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 okunabilir hâle getirir. Özellikler, oluşturucu çalıştıktan sonra ayarlanır. Başlatıcıları oluşturucu parametreleriyle veya bunlar olmadan kullanabilir, böylece nesne oluşturmayı esnek ve özlü hâle getirebilirsiniz.
Görev
OrtaFarklı nesne başlatıcı yaklaşımlarını kullanarak üç Student nesnesi oluştur:
- student1: Tüm özellikleri (Name, StudentId, Major, GPA) girdiden ayarlamak için varsayılan oluşturucuyu nesne başlatıcıyla kullan
- student2: Yalnızca Name = "Bob" ve Major = "Engineering" değerlerini ayarlamak için nesne başlatıcı kullan
- student3: Parametre olarak "Charlie" ile oluşturucuyu kullan, ardından StudentId = 54321, Major = "Mathematics", GPA = 3.5 değerlerini ayarlamak için nesne başlatıcı kullan
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());
// TODO: student1 nesnesini tüm özellikleri içeren bir nesne başlatıcısıyla oluşturun
// Varsayılan kurucuyu kullanarak Name, StudentId, Major ve GPA özelliklerini ayarlayın
// TODO: student2 nesnesini yalnızca Name ve Major özelliklerini içeren bir nesne başlatıcısıyla oluşturun
// Name "Bob", Major ise "Engineering" olmalı
// TODO: student3 nesnesini name parametresi "Charlie" olan kurucuyla oluşturun
// Ardından StudentId = 54321, Major = "Mathematics" ve GPA = 3.5 değerlerini ayarlamak için bir nesne başlatıcısı 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}");
}
}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
1OOP Temelleri
Harici Dosyalarİsim Alanları ve YönergelerSınıf ve Nesnelere Giriş'this' Anahtar KelimesiMetotlar ve ParametrelerAlanlar ve ÖzelliklerYapıcı MetotlarNesne BaşlatıcılarÖzet - Basit Hesap Makinesi4Kalıtım
Temel Kalıtım (:) Sözdizimi'base' Anahtar KelimesiVirtual ve Override Anahtar KelimeleriSealed Sınıflar'object' Temel SınıfıÖzet - Çalışan Hiyerarşisi7İleri Düzey Özellikler
Operatör Aşırı Yüklemeİndeksleyiciler (this[])ToString() Geçersiz KılmaGenişletme MetotlarıÖzet - Özel Liste10Tasarım Kalıpları Bölüm 1
Tasarım Kalıplarına GirişThread-Safe SingletonFactory KalıbıObserver Kalıbı (Olaylar)Strategy Kalıbı2Özellikler ve Statik Üyeler
Otomatik Uygulanan ÖzelliklerSadece Okunur/Yazılır ÖzelliklerStatik Alanlar ve MetotlarStatik Sınıflarİfade Gövdeli Üyeler5Polimorfizm ve Arayüzler
Derleme vs Çalışma Zamanı PolimorfizmiArayüz vs Soyut SınıfÇoklu ArayüzlerBelirgin ArayüzlerUpcasting ve DowncastingÖzet - Şekil Hesaplayıcı8İleri Düzey OOP Kavramları
Kalıtım yerine KompozisyonGenerics (Sınıflar ve Metotlar)Delegates ve EventlerAttributes ve ReflectionIDisposable ve using İfadesiDependency Injection Temelleri11Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıKompozit Kalıbı3Sınıf Mimarisi
Örnek vs Statik Veri'readonly' ve 'const' Anahtar KelimeleriDestekleyici Alanlar (Backing Fields)Özet - Banka Hesabı Yöneticisi6Kapsülleme
Erişim BelirleyicilerKapsülleme için ÖzelliklerVeri Gizleme UygulamasıDeğişmezlik KalıplarıÖzet - Öğrenci KayıtlarıKendi başına pratik yap: Online C# derleyicisi