Alanlar ve Özellikler
Coddy'nin C# Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 6 / 70.
Alanlar, doğrudan bir sınıf içinde tanımlanan değişkenlerdir. Özellikler, get ve set erişimcilerini kullanarak alanlara kontrollü erişim sağlayan üyelerdir.
Alanlar veriyi doğrudan saklar
public class Person
{
// Alanlar - doğrudan değişken depolama
private string name;
private int age;
}Özellikler, get ve set ile kontrollü erişim sağlar
public class Person
{
private string name;
// Destekleyici alanlı özellik
public string Name
{
get { return name; }
set { name = value; }
}
}Otomatik uygulanan özellikler (kısa yazım)
public class Person
{
// Otomatik uygulanan özellik
public string Name { get; set; }
public int Age { get; set; }
}Özellikler doğrulama mantığı içerebilir
public class Person
{
private int age;
public int Age
{
get { return age; }
set
{
if (value >= 0 && value <= 120)
age = value;
}
}
}Salt okunur özellik (yalnızca get erişimcisi)
public class Circle
{
private double radius;
public double Radius
{
get { return radius; }
}
// Salt okunur hesaplanmış özellik
public double Area
{
get { return Math.PI * radius * radius; }
}
}Alanlar genellikle private'dır ve özellikler (properties) aracılığıyla erişilir. Özellikler; mantık, doğrulama ve verinin nasıl erişileceği veya değiştirileceği üzerinde kontrol eklemenize olanak tanır. Otomatik uygulanan özellikler (Auto-implemented properties), ekstra mantığa ihtiyaç duymadığınız durumlarda kolaylık sağlar.
Görev
OrtaAlanlar (fields) ve özellikler (properties) arasındaki farkı gösteren bir BankAccount sınıfı oluşturun:
- Hesap bakiyesini saklamak için özel bir
balancealanı - Otomatik uygulanan bir
AccountNameözelliği balancealanını döndüren salt okunur birBalanceözelliği- Özel alanı değiştiren
DepositveWithdrawmetotları
Kopya kağıdı
Alanlar (Fields), doğrudan bir sınıf içinde bildirilen değişkenlerdir; özellikler (properties) ise get ve set erişimcilerini kullanarak alanlara kontrollü erişim sağlar.
Alanlar (Fields) veriyi doğrudan depolar:
public class Person
{
private string name;
private int age;
}Özellikler (Properties) get ve set ile kontrollü erişim sağlar:
public class Person
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
}Otomatik uygulanan özellikler (kısa yol):
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}Doğrulama mantığı içeren özellikler:
public int Age
{
get { return age; }
set
{
if (value >= 0 && value <= 120)
age = value;
}
}Salt okunur özellik (yalnızca get erişimcisi):
public double Area
{
get { return Math.PI * radius * radius; }
}Alanlar genellikle private (özel) olur ve özellikler aracılığıyla erişilir. Özellikler; mantık, doğrulama ve verilerin nasıl erişileceği veya değiştirileceği üzerinde kontrol eklemenize olanak tanır.
Kendin dene
using System;
class Program
{
static void Main()
{
string accountName = Console.ReadLine();
decimal initialBalance = decimal.Parse(Console.ReadLine());
decimal depositAmount = decimal.Parse(Console.ReadLine());
BankAccount account = new BankAccount(accountName, initialBalance);
Console.WriteLine($"Account: {account.AccountName}");
Console.WriteLine($"Initial Balance: ${account.Balance}");
account.Deposit(depositAmount);
Console.WriteLine($"After Deposit: ${account.Balance}");
string result = account.Withdraw(2000);
Console.WriteLine($"Withdraw attempt: {result}");
Console.WriteLine($"Final Balance: ${account.Balance}");
}
}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ı