0Pricing
C# Academy · Pelajaran

Mendefinisikan Konstruktor

Buat instance dengan konstruktor berparameter.

Mendefinisikan Konstruktor 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?

Konstruktor adalah metode khusus yang dijalankan saat objek dibuat dengan new. Konstruktor memiliki nama yang sama dengan kelas dan tidak memiliki tipe kembalian. Tugasnya adalah menempatkan objek dalam keadaan awal yang valid.

using System;

class Dog
{
    public Dog()
    {
        Console.WriteLine("A dog was created");
    }
}

class Program
{
    static void Main()
    {
        var d = new Dog();
    }
}

Konstruktor Berparameter

Konstruktor dapat menerima parameter sehingga pemanggil memasok nilai awal. Ini merupakan pola yang paling umum untuk menetapkan data wajib.

using System;

class Person
{
    public string Name;
    public int Age;

    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
}

class Program
{
    static void Main()
    {
        var p = new Person("Ada", 36);
        Console.WriteLine(p.Name + " is " + p.Age);
    }
}

Kata Kunci this dalam Konstruktor

Saat nama parameter sama dengan nama bidang, gunakan this. untuk merujuk pada bidang dan membedakannya dari parameter.

using System;

class Book
{
    public string Title;

    public Book(string title)
    {
        this.Title = title;
    }
}

class Program
{
    static void Main()
    {
        var b = new Book("C# Basics");
        Console.WriteLine(b.Title);
    }
}

Konstruktor Bawaan

Jika Anda tidak menulis konstruktor, kompilator menyediakan konstruktor tanpa parameter. Namun, begitu Anda mendefinisikan konstruktor apa pun, konstruktor bawaan tersebut hilang kecuali Anda menambahkannya sendiri.

using System;

class Empty
{
    // No constructor written -> compiler supplies a default one
    public int Value;
}

class Program
{
    static void Main()
    {
        var e = new Empty();
        Console.WriteLine("Default Value: " + e.Value);
    }
}

Validasi dalam Konstruktor

Konstruktor dapat memvalidasi argumennya, sehingga objek tidak pernah dibuat dalam keadaan yang tidak valid.

using System;

class Account
{
    public decimal Balance;

    public Account(decimal initial)
    {
        if (initial < 0)
            throw new ArgumentException("Initial balance cannot be negative");
        Balance = initial;
    }
}

class Program
{
    static void Main()
    {
        var a = new Account(100m);
        Console.WriteLine("Balance: " + a.Balance);
    }
}

Konstruktor dengan Parameter Beragam

Sebuah kelas dapat memiliki beberapa konstruktor dengan daftar parameter yang berbeda. Kompilator memilih konstruktor yang sesuai dengan argumen yang Anda berikan.

using System;

class Point
{
    public int X;
    public int Y;

    public Point()
    {
        X = 0;
        Y = 0;
    }

    public Point(int x, int y)
    {
        X = x;
        Y = y;
    }
}

class Program
{
    static void Main()
    {
        var origin = new Point();
        var p = new Point(3, 4);
        Console.WriteLine(origin.X + "," + origin.Y + " | " + p.X + "," + p.Y);
    }
}

Menetapkan Properti dari Konstruktor

Konstruktor biasanya menetapkan nilai ke properti otomatis, termasuk properti yang hanya dapat di-init atau memiliki penyetel privat.

using System;

class Product
{
    public string Name { get; }
    public decimal Price { get; }

    public Product(string name, decimal price)
    {
        Name = name;
        Price = price;
    }
}

class Program
{
    static void Main()
    {
        var p = new Product("Pen", 1.50m);
        Console.WriteLine(p.Name + ": " + p.Price);
    }
}

Nilai Parameter Bawaan

Parameter konstruktor dapat memiliki nilai bawaan, sehingga pemanggil tidak perlu menyertakannya. Hal ini sering mengurangi kebutuhan akan beberapa konstruktor.

using System;

class Circle
{
    public double Radius;
    public string Color;

    public Circle(double radius, string color = "black")
    {
        Radius = radius;
        Color = color;
    }
}

class Program
{
    static void Main()
    {
        var c1 = new Circle(2);
        var c2 = new Circle(3, "red");
        Console.WriteLine(c1.Color + " | " + c2.Color);
    }
}

Melakukan Pekerjaan dalam Konstruktor

Selain menetapkan bidang, konstruktor dapat menghitung data turunan atau menyiapkan sumber daya yang diperlukan objek.

using System;

class Rectangle
{
    public double Width;
    public double Height;
    public double Area;

    public Rectangle(double w, double h)
    {
        Width = w;
        Height = h;
        Area = w * h;
    }
}

class Program
{
    static void Main()
    {
        var r = new Rectangle(4, 5);
        Console.WriteLine("Area: " + r.Area);
    }
}

Konstruktor dan Data Wajib

Menempatkan nilai wajib dalam konstruktor menjadikannya benar-benar harus disediakan: Anda tidak dapat membuat objek tanpa memasok nilai tersebut.

using System;

class User
{
    public string Id;
    public string Email;

    public User(string id, string email)
    {
        Id = id;
        Email = email;
    }
}

class Program
{
    static void Main()
    {
        var u = new User("u1", "a@b.com");
        Console.WriteLine(u.Id + " / " + u.Email);
    }
}

Menggabungkan Semuanya

Konstruktor yang dirancang dengan baik memvalidasi masukan, menetapkan bidang, dan membuat objek sepenuhnya siap digunakan.

using System;

class Temperature
{
    public double Celsius { get; }
    public double Fahrenheit { get; }

    public Temperature(double celsius)
    {
        if (celsius < -273.15)
            throw new ArgumentException("Below absolute zero");
        Celsius = celsius;
        Fahrenheit = celsius * 9 / 5 + 32;
    }
}

class Program
{
    static void Main()
    {
        var t = new Temperature(25);
        Console.WriteLine(t.Celsius + "C = " + t.Fahrenheit + "F");
    }
}

Pemeriksaan Singkat

Uji pemahaman Anda tentang konstruktor.

Ringkasan

Sebuah konstruktor memiliki nama yang sama dengan kelas, tidak memiliki tipe pengembalian, dan dijalankan oleh new. Konstruktor berparameter menerima nilai awal; this. membedakan atribut dari parameter. Anda dapat mendefinisikan beberapa konstruktor dengan parameter berbeda dan menggunakan nilai parameter bawaan. Mendefinisikan konstruktor apa pun menghapus konstruktor bawaan yang dibuat secara otomatis.

using System;

class Demo
{
    public string Name;
    public Demo(string name = "anon")
    {
        this.Name = name;
    }
}

class Program
{
    static void Main()
    {
        Console.WriteLine(new Demo().Name);
        Console.WriteLine(new Demo("Kai").Name);
    }
}

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mendefinisikan Konstruktor” gratis?

Ya — teks lengkap “Mendefinisikan Konstruktor” 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 “Mendefinisikan Konstruktor”?

Buat instance dengan konstruktor berparameter. 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 “Mendefinisikan Konstruktor” 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

  1. Mendefinisikan Konstruktor
  2. Rangkaian Konstruktor dengan this
  3. Inisialisasi Objek dan Koleksi
  4. Konstruktor Statis
← Kembali ke C# Academy