Konstruktor Utama pada Kelas
Deklarasikan parameter konstruktor di header tipe.
Konstruktor Utama pada Kelas adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.
Apa Itu Konstruktor Utama
Konstruktor utama memungkinkan Anda mendeklarasikan parameter konstruktor langsung di kepala kelas, seperti class Point(int x, int y). Parameter tersebut berada dalam cakupan di seluruh badan kelas.
using System;
class Point(int x, int y) {
public int X => x;
public int Y => y;
}
var p = new Point(3, 4);
Console.WriteLine(p.X + "," + p.Y); // 3,4Tanpa Kode Berulang
Sebelum konstruktor utama, Anda harus menulis badan konstruktor hanya untuk menyalin parameter ke bidang. Kini kepala kelas mendeklarasikan parameter dan Anda dapat langsung merujuknya.
using System;
class Greeter(string name) {
public string Greet() => "Hello, " + name + "!";
}
Console.WriteLine(new Greeter("Ada").Greet()); // Hello, Ada!Parameter Berada dalam Cakupan di Mana Saja
Parameter konstruktor utama dapat digunakan dalam penginisialisasi properti, badan metode, dan penginisialisasi bidang di mana pun dalam kelas.
using System;
class Circle(double radius) {
public double Area => Math.PI * radius * radius;
public double Circumference => 2 * Math.PI * radius;
}
var c = new Circle(2);
Console.WriteLine(Math.Round(c.Area, 2)); // 12.57Menginisialisasi Bidang dan Properti
Anda dapat menggunakan parameter konstruktor utama untuk menginisialisasi bidang atau properti saat deklarasi.
using System;
class Account(decimal initial) {
public decimal Balance { get; private set; } = initial;
public void Deposit(decimal amount) => Balance += amount;
}
var a = new Account(100m);
a.Deposit(50m);
Console.WriteLine(a.Balance); // 150Validasi di Kepala Kelas
Anda dapat memvalidasi parameter konstruktor utama secara langsung menggunakan ekspresi throw saat menetapkannya ke bidang.
using System;
class Person(string name) {
public string Name { get; } =
string.IsNullOrWhiteSpace(name)
? throw new ArgumentException("name required")
: name;
}
Console.WriteLine(new Person("Lin").Name); // LinMenambahkan Konstruktor Tambahan
Kelas dengan konstruktor utama tetap dapat mendeklarasikan konstruktor tambahan, tetapi konstruktor tersebut harus meneruskan rantai ke konstruktor utama dengan : this(...).
using System;
class Box(int width, int height) {
public int Width => width;
public int Height => height;
public Box(int size) : this(size, size) { }
}
var sq = new Box(5);
Console.WriteLine(sq.Width + "x" + sq.Height); // 5x5Badan Konstruktor Utama
Konstruktor utama tidak memiliki badan sendiri. Logika yang harus dijalankan saat pembuatan diletakkan dalam penginisialisasi bidang atau konstruktor biasa yang dirantai.
using System;
class Logger(string prefix) {
private readonly string tag = "[" + prefix + "]";
public void Log(string msg) => Console.WriteLine(tag + " " + msg);
}
new Logger("INFO").Log("started"); // [INFO] startedTidak Otomatis Menjadi Properti Publik
Berbeda dari rekaman, konstruktor utama pada kelas biasa tidak membuat properti publik. Parameter tersebut bersifat privat bagi kelas kecuali Anda mengeksposnya sendiri.
using System;
class Temp(double celsius) {
// celsius is NOT a public property here
public double Fahrenheit => celsius * 9 / 5 + 32;
}
Console.WriteLine(new Temp(100).Fahrenheit); // 212Parameter yang Ditangkap Menjadi Bidang
Saat parameter konstruktor utama digunakan dalam metode (bukan hanya dalam penginisialisasi), kompilator menangkapnya ke dalam bidang tersembunyi agar tetap tersedia setelah pembuatan objek.
using System;
class Counter(int start) {
private int value = start;
public int Next() => value++;
}
var c = new Counter(10);
Console.WriteLine(c.Next()); // 10
Console.WriteLine(c.Next()); // 11Injeksi Dependensi yang Lebih Bersih
Konstruktor utama populer untuk DI: deklarasikan layanan di kepala kelas dan gunakan di dalam metode tanpa penetapan bidang secara manual.
using System;
interface IClock { string Now(); }
class FakeClock : IClock { public string Now() => "12:00"; }
class Service(IClock clock) {
public string Report() => "Time is " + clock.Now();
}
Console.WriteLine(new Service(new FakeClock()).Report()); // Time is 12:00Menggabungkan Semuanya
Kelas ini menggunakan konstruktor utama untuk dependensinya dan mengekspos properti terhitung tanpa badan konstruktor eksplisit.
using System;
class Rectangle(double w, double h) {
public double Area => w * h;
public double Perimeter => 2 * (w + h);
}
var r = new Rectangle(3, 4);
Console.WriteLine(r.Area + " " + r.Perimeter); // 12 14Pemeriksaan Singkat
Uji pemahaman Anda tentang konstruktor utama pada kelas.
Rangkuman
Anda telah mempelajari konstruktor utama pada kelas.
class C(int x)mendeklarasikan parameter konstruktor di kepala kelas.- Parameter berada dalam cakupan di seluruh badan kelas.
- Konstruktor tambahan dirantai dengan
: this(...). - Pada kelas biasa, parameter tersebut tidak otomatis menjadi properti publik.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Konstruktor Utama pada Kelas” gratis?
Ya — teks lengkap “Konstruktor Utama pada Kelas” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Konstruktor Utama pada Kelas”?
Deklarasikan parameter konstruktor di header tipe. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C# Academy?
Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Konstruktor Utama pada Kelas” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?
Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Konstruktor Utama pada Kelas
- Menangkap Parameter dalam Anggota
- Konstruktor Utama dengan Struct
- Menggabungkan dengan Properti dan Tipe Dasar