Panduan Lengkap Tentang Properti di C# untuk Pemula
Hai teman, bakal bintang pemrograman! Hari ini, kita akan memulai perjalanan menarik ke dunia Properti di C#. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - saya akan menjadi panduan ramah Anda, dan kita akan mengatasi topik ini secara bertahap. Pada akhir panduan ini, Anda akan menjadi ahli Properti!
Apa Itu Properti?
Sebelum kita masuk ke detil, bayangkan Anda memiliki sepotong tabungan. Anda dapat memasukkan uang dan mengambil uang, tetapi Anda tidak dapat mengakses secara langsung bagian dalam tabungan. Properti di C# bekerja sama seperti itu - mereka menyediakan cara untuk mengakses dan mengubah nilai field privat dalam kelas, sambil tetap menjaga kontrol bagaimana akses itu terjadi.
Mengapa Menggunakan Properti?
- Enkapsulasi: Mereka membantu menyembunyikan kerja internal kelas.
- Flexibilitas: Anda dapat mengubah bagaimana data disimpan tanpa mengubah bagaimana data diakses.
- Validasi: Anda dapat menambah pemeriksaan untuk memastikan data valid sebelum diatur.
Sekarang, mari kita meraba-raba beberapa kode!
Sintaks Properti Dasar
Ini adalah bentuk paling sederhana dari properti:
public class Person
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
}
Dalam contoh ini, Name
adalah properti kami. Itu terkait dengan field privat name
. Bagian get
dan set
disebut penyesuai akses.
Penyesuai Akses
Properti memiliki dua penyesuai akses utama:
- get: Mengambil nilai properti
- set: Menetapkan nilai baru ke properti
mari kitauraikan properti Name
kita:
public string Name
{
get { return name; } // Ini adalah getter
set { name = value; } // Ini adalah setter
}
Ketika Anda mengakses properti (misalnya, person.Name
), getter dipanggil. Ketika Anda menetapkan nilai (misalnya, person.Name = "John"
), setter dipanggil.
Properti Otomatis
C# memiliki singkatan untuk properti sederhana yang tidak memerlukan logika khusus:
public class Person
{
public string Name { get; set; }
}
Ini menciptakan properti Name
dengan field pendukung tersembunyi yang dikelola oleh C# untuk Anda. Itu seperti magi!
Properti Dengan Logika
Sekarang, mari kita tambahkan sedikit keanehan ke properti kita:
public class BankAccount
{
private decimal balance;
public decimal Balance
{
get { return balance; }
set
{
if (value < 0)
{
throw new ArgumentException("Balance cannot be negative");
}
balance = value;
}
}
}
Di sini, kita memastikan bahwa saldo tidak bisa negatif. Jika seseorang mencoba menetapkan saldo negatif, kita melempar sebuah pengecualian. Itu seperti memiliki penjaga bagi tabungan Anda!
Properti Baca-Saja dan Menulis-Saja
kadang-kadang, Anda mungkin ingin membatasi akses ke properti Anda:
public class SecretAgent
{
private string codeName = "007";
// Properti baca-saja
public string CodeName
{
get { return codeName; }
}
// Properti menulis-saja
public string Mission
{
set { Console.WriteLine($"New mission: {value}"); }
}
}
James Bond pasti akan menyetujui level kerahasiaan ini!
Properti Dengan Eksripsi
Untuk properti sederhana, C# 6.0 memperkenalkan sintaks yang lebih ringkas:
public class Circle
{
public double Radius { get; set; }
// Properti baca-saja menggunakan tubuh ekspresi
public double Area => Math.PI * Radius * Radius;
}
Sintaks =>
adalah seperti mengatakan "properti ini ditentukan oleh ekspresi berikut". Itu pendek, manis, dan matematis!
Properti Abstrak
Dalam kelas abstrak, Anda dapat menetapkan properti abstrak yang kelas turunan harus implementasikan:
public abstract class Shape
{
public abstract double Area { get; }
}
public class Square : Shape
{
public double Side { get; set; }
public override double Area => Side * Side;
}
Itu seperti membuat blueprint untuk properti yang kelas "anak" Anda harus mengisi.
Tabel Metode Properti
Ini adalah tabel metode terkait properti:
Metode | Deskripsi | Contoh |
---|---|---|
get | Mengambil nilai properti | get { return name; } |
set | Menetapkan nilai properti | set { name = value; } |
init | Menetapkan nilai properti hanya saat inisialisasi objek | public string Name { get; init; } |
value | Representasi nilai yang ditetapkan dalam setter | set { if (value != null) name = value; } |
Kesimpulan
Selamat! Anda baru saja mengambil langkah pertama ke dunia Properti di C#. Ingat, properti adalah seperti butler yang terlatih bagi field privat kelas Anda - mereka mengelola akses, menegakkan aturan, dan menjaga kebersihan.
Sebagai Anda terus melanjutkan perjalanan pemrograman Anda, Anda akan menemukan properti muncul di mana-mana. Mereka adalah bagian penting dari menulis kode C# yang bersih dan dapat dipelihara. Terus latih, dan segera Anda akan menjadi ahli Properti!
Selamat pemrograman, dan semoga properti Anda selalu terpelihara dengan baik! ?????
Credits: Image by storyset