Bagikan melalui


Konstruktor Privat (Panduan Pemrograman C#)

Konstruktor privat adalah konstruktor instans khusus. Umumnya digunakan dalam kelas yang hanya berisi anggota statis. Jika kelas memiliki satu atau beberapa konstruktor privat dan tidak ada konstruktor publik, kelas lain (kecuali kelas berlapis) tidak dapat membuat instans kelas ini. Contohnya:

class NLog
{
    // Private Constructor:
    private NLog() { }

    public static double e = Math.E;  //2.71828...
}

Deklarasi konstruktor kosong mencegah pembuatan otomatis konstruktor tanpa parameter. Perhatikan bahwa jika Anda tidak menggunakan pengubah akses dengan konstruktor, itu masih akan bersifat privat secara default. Namun, pengubah privat biasanya digunakan secara eksplisit untuk memperjelas bahwa kelas tidak dapat dibuat.

Konstruktor privat digunakan untuk mencegah pembuatan instans kelas ketika tidak ada bidang atau metode instans, seperti Math kelas, atau ketika metode dipanggil untuk mendapatkan instans kelas. Jika semua metode di kelas bersifat statis, pertimbangkan untuk membuat kelas lengkap statis. Untuk informasi selengkapnya, lihat Kelas Statis dan Anggota Kelas Statis.

Contoh

Berikut ini adalah contoh kelas menggunakan konstruktor privat.

public class Counter
{
    private Counter() { }

    public static int currentCount;

    public static int IncrementCount()
    {
        return ++currentCount;
    }
}

class TestCounter
{
    static void Main()
    {
        // If you uncomment the following statement, it will generate
        // an error because the constructor is inaccessible:
        // Counter aCounter = new Counter();   // Error

        Counter.currentCount = 100;
        Counter.IncrementCount();
        Console.WriteLine($"New count: {Counter.currentCount}");

        // Keep the console window open in debug mode.
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
}
// Output: New count: 101

Perhatikan bahwa jika Anda menghapus komentar pada pernyataan berikut dari contoh, itu akan menimbulkan kesalahan karena konstruktor tidak dapat diakses akibat tingkat perlindungannya.

// Counter aCounter = new Counter();   // Error

Lihat juga