Alanlar ve özellikler
Field ve property kavramlarını, auto-property kullanımını öğrenirsin.
Alanlar (fields)
Sınıf gövdesinde tanımlanan değişkenlere alan (field) denir. Alanlar nesnenin verisini tutar. Bir Product sınıfında public string name; bir alandır.
Alanlara erişim belirleyici konur: public her yerden, private yalnız sınıf içinden. Kapsülleme (encapsulation) için çoğu alan private yapılır, dışarıya özellik (property) ile açılır. Alanlar küçük harfle, özellikler PascalCase yazılır.
Özellikler (properties)
Özellikler (properties), alan gibi okunur ama arka planda metot gibi çalışır. get okuma, set yazma erişimcisidir. En sık kullanılan biçim otomatik özellikdir:
public string Name { get; set; }. Bu satır derleyiciye arka planda gizli bir alan üretip okuma ve yazmayı otomatik yapmasını söyler. Daha az kod, daha güçlü kapsülleme. Özellik adları PascalCase yazılır: Name, Price, IsActive.
Uygulama Product sınıfına özellik ekle
Product sınıfını tanımla ve içine public string Name { get; set; } ve public decimal Price { get; set; } otomatik özelliklerini ekle. Main içinde bir örnek oluştur, Name'i "Kalem" yap ve Name'i yazdır.
Örnek çözümü göster
Product sınıfına iki otomatik özellik ekle. Main içine Product p = new Product(); p.Name = "Kalem"; Console.WriteLine(p.Name); yaz.
Örnek çözüm:
using System;
class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
}
class Program
{
static void Main()
{
Product p = new Product();
p.Name = "Kalem";
Console.WriteLine(p.Name);
}
}
Kendini test et
-
Alan bildirimini tamamla
class Product { public string ____; }Cevabı göster
class Product { public string name; } -
Hangisi geçerli bir otomatik özelliktir?
- public string Name;
- public string Name { get; set; }
- public string Name = get; set;
- public Name { }
Cevabı göster
public string Name { get; set; } — Doğru. { get; set; } otomatik özellik sözdizimidir.
-
Bildirimi türüne eşle
- public string name;
- Alan
- public string Name { get; set; }
- Otomatik özellik
- new Product()
- Örnek oluşturma
- product.Name
- Özelliğe erişim