Menu
CoddyTech

Field vs Property

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C# di Coddy. Pelajaran 6 dari 70.

Field adalah variabel yang dideklarasikan langsung di dalam class. Property adalah anggota yang menyediakan akses terkontrol ke field menggunakan accessor get dan set.

Field menyimpan data secara langsung

public class Person
{
    // Field: penyimpanan variabel secara langsung
    private string name;
    private int age;
}

property menyediakan akses terkontrol melalui get dan set

public class Person
{
    private string name;
    
    // property dengan field penyimpan
    public string Name
    {
        get { return name; }
        set { name = value; }
    }
}

Properti otomatis (bentuk singkat)

public class Person
{
    // property yang diimplementasikan otomatis
    public string Name { get; set; }
    public int Age { get; set; }
}

Property dapat mencakup logika validasi

public class Person
{
    private int age;
    
    public int Age
    {
        get { return age; }
        set 
        { 
            if (value >= 0 && value <= 120)
                age = value;
        }
    }
}

Properti hanya-baca (hanya accessor get)

public class Circle
{
    private double radius;
    
    public double Radius
    {
        get { return radius; }
    }
    
    // property hasil perhitungan yang hanya bisa dibaca
    public double Area
    {
        get { return Math.PI * radius * radius; }
    }
}

Field biasanya bersifat private dan diakses melalui property. Property memungkinkan kamu menambahkan logika, validasi, dan kontrol atas cara data diakses atau diubah. Property yang diimplementasikan otomatis praktis digunakan saat kamu tidak memerlukan logika tambahan.

challenge icon

Tantangan

Sedang

Buat class BankAccount yang menunjukkan perbedaan antara field dan property:

  • Field balance privat untuk menyimpan saldo akun
  • Property AccountName yang diimplementasikan secara otomatis
  • Property Balance hanya-baca yang mengembalikan nilai field saldo
  • Method Deposit dan Withdraw yang mengubah field privat

Coba sendiri

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 iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler C# online