Menu
Coddy logo textTech

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.

challenge icon

Görev

Orta

Alanlar (fields) ve özellikler (properties) arasındaki farkı gösteren bir BankAccount sınıfı oluşturun:

  • Hesap bakiyesini saklamak için özel bir balance alanı
  • Otomatik uygulanan bir AccountName özelliği
  • balance alanını döndüren salt okunur bir Balance özelliği
  • Özel alanı değiştiren Deposit ve Withdraw metotları

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}");
    }
}
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