Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

Konstruktor C#

Konstruktor C#

Dalam tutorial ini, kita akan belajar tentang konstruktor C# dan tipenya dengan bantuan contoh.

Dalam C#, konstruktor mirip dengan metode yang dipanggil saat objek kelas dibuat.

Namun, tidak seperti metode, konstruktor:


Buat konstruktor C#

Inilah cara kami membuat konstruktor di C#

class Car {
  
  // constructor
  Car() {
    //code
  }

}

Di sini, Mobil() adalah konstruktor. Ini memiliki nama yang sama dengan kelasnya.

Memanggil konstruktor

Setelah kita membuat konstruktor, kita dapat memanggilnya menggunakan new kata kunci. Misalnya,

new Car();

Dalam C#, sebuah konstruktor dipanggil ketika kita mencoba membuat sebuah objek dari sebuah kelas. Misalnya,

Car car1 = new Car();

Di sini, kita memanggil Mobil() konstruktor untuk membuat objek car1 . Untuk mempelajari lebih lanjut tentang objek, kunjungi Kelas dan Objek C#.


Jenis Konstruktor

Ada jenis konstruktor berikut:


1. Konstruktor Tanpa Parameter

Saat kita membuat konstruktor tanpa parameter, itu dikenal sebagai konstruktor tanpa parameter. Misalnya,

using System;

namespace Constructor {

  class Car {   

    // parameterless constructor
    Car() {
      Console.WriteLine("Car Constructor");
    }
 
    static void Main(string[] args) {

      // call constructor
      new Car();
      Console.ReadLine();
     
    }
  }
}

Keluaran

Car Constructor

Pada contoh di atas, kita telah membuat konstruktor bernama Car() .

new Car();

Kita dapat memanggil konstruktor dengan menambahkan new kata kunci ke nama konstruktor.


2. C# Konstruktor Berparameter

Dalam C#, konstruktor juga dapat menerima parameter. Ini disebut konstruktor parameter. Misalnya,

using System;

namespace Constructor {

  class Car {   

    string brand;
    int price;

    // parameterized constructor
    Car(string theBrand, int thePrice) {

      brand = theBrand;
      price = thePrice;
    }
  
    static void Main(string[] args) {

      // call parameterized constructor
      Car car1 = new Car("Bugatti", 50000);

      Console.WriteLine("Brand: " + car1.brand);
      Console.WriteLine("Price: " + car1.price);
      Console.ReadLine();
     
    }
  }
}

Keluaran

Brand: Bugatti
Price: 50000

Pada contoh di atas, kita telah membuat konstruktor bernama Car() . Konstruktor mengambil dua parameter:theBrand dan Harga .

Perhatikan pernyataannya,

Car car1 = new Car("Bugatti", 50000);

Di sini, kami meneruskan dua nilai ke konstruktor.

Nilai yang diteruskan ke konstruktor disebut argumen. Kita harus memberikan jumlah dan jenis nilai yang sama sebagai parameter.


3. Konstruktor Default

Jika kita belum mendefinisikan konstruktor di kelas kita, maka C# akan secara otomatis membuat konstruktor default dengan kode kosong dan tanpa parameter. Misalnya,

using System;

namespace Constructor {

  class Program {  

    int a;

    static void Main(string[] args) {

      // call default constructor
      Program p1 = new Program();

      Console.WriteLine("Default value of a: " + p1.a);
      Console.ReadLine();
     
    }
  }
}

Keluaran

Default value of a: 0

Dalam contoh di atas, kami belum membuat konstruktor di Program kelas. Namun, saat membuat objek, kita memanggil konstruktor.

Program p1 = new Program();

Di sini, C# secara otomatis membuat konstruktor default. Konstruktor default menginisialisasi variabel yang tidak diinisialisasi dengan nilai default.

Oleh karena itu, kita mendapatkan 0 sebagai nilai dari int variabel a .

Catatan :Dalam konstruktor default, semua bidang numerik diinisialisasi ke 0, sedangkan string dan objek diinisialisasi sebagai null.


4. Salin Konstruktor di C#

Kami menggunakan copy constructor untuk membuat objek dengan menyalin data dari objek lain. Misalnya,

using System;

namespace Constructor {

  class Car {  
    string brand;

    // constructor
    Car (string theBrand) {
      brand = theBrand;
    }

    // copy constructor
    Car(Car c1) {
      brand = c1.brand;
    }

    static void Main(string[] args) {
      // call constructor
      Car car1 = new Car("Bugatti");

      Console.WriteLine("Brand of car1: " + car1.brand);

      // call the copy constructor
      Car car2 = new Car(car1);
      Console.WriteLine("Brand of car2: " + car2.brand);

      Console.ReadLine();
     
    }
  }
}

Keluaran

Brand of car1: Bugatti
Brand of car2: Bugatti

Dalam program di atas, kita telah menggunakan copy constructor.

Car(Car c1) {
  brand = c1.brand;
}

Di sini, konstruktor ini menerima objek Mobil sebagai parameternya. Jadi, saat membuat car2 objek, kami telah melewati car1 objek sebagai argumen untuk copy constructor.

Car car2 = new Car(car1);

Di dalam copy constructor, kami telah menetapkan nilai brand untuk mobil1 keberatan dengan merek variabel untuk car2 obyek. Oleh karena itu, kedua objek memiliki nilai brand same yang sama .


5. Konstruktor Pribadi

Kita dapat membuat konstruktor pribadi menggunakan private penentu akses. Ini dikenal sebagai konstruktor pribadi di C#.

Setelah konstruktor dinyatakan pribadi, kita tidak dapat membuat objek kelas di kelas lain.

Contoh 1:Konstruktor Pribadi

using System;

namespace Constructor {

  class Car {  
  
   // private constructor
   private Car () {
    Console.WriteLine("Private Constructor");    
    }
  }
    
    class CarDrive {

      static void Main(string[] args) {

      // call private constructor
      Car car1 = new Car();
      Console.ReadLine();
    }
  }
}

Dalam contoh di atas, kami telah membuat konstruktor pribadi Car() . Karena anggota pribadi tidak diakses di luar kelas, ketika kami mencoba membuat objek Mobil

// inside CarDrive class
Car car1 = new Car();

kami mendapatkan kesalahan

error CS0122: 'Car.Car()' is inaccessible due to its protection level

Catatan :Jika konstruktor bersifat pribadi, kita tidak dapat membuat objek kelas. Oleh karena itu, semua bidang dan metode kelas harus dideklarasikan statis, sehingga dapat diakses menggunakan nama kelas.


6. C# Konstruktor Statis

Di C#, kita juga bisa membuat konstruktor kita menjadi statis. Kami menggunakan static kata kunci untuk membuat konstruktor statis. Misalnya,

using System;

namespace Constructor {

  class Car {  
  
   // static constructor
   static Car () {
    Console.WriteLine("Static Constructor");    
   }

    // parameterless constructor
    Car() {
     Console.WriteLine("Default Constructor");
   } 

    static void Main(string[] args) {

      // call parameterless constructor
      Car car1 = new Car();

      // call parameterless constructor again
      Car car2 = new Car();

      Console.ReadLine();
    }
  }
}

Pada contoh di atas, kita telah membuat konstruktor statis.

static Car () {
  Console.WriteLine("Static Constructor");    
}

Kami tidak dapat memanggil konstruktor statis secara langsung. Namun, ketika kita memanggil konstruktor biasa, konstruktor statis akan dipanggil secara otomatis.

Car car1 = new Car();

Di sini, kita memanggil Mobil() konstruktor. Anda dapat melihat bahwa konstruktor statis juga dipanggil bersama dengan konstruktor biasa.

Keluaran

Static Constructor
Default Constructor
Default Constructor

Konstruktor statis dipanggil hanya sekali selama eksekusi program. Itu sebabnya ketika kita memanggil konstruktor lagi, hanya konstruktor biasa yang dipanggil.

Catatan :Kita hanya dapat memiliki satu konstruktor statis dalam satu kelas. Itu tidak boleh memiliki parameter atau pengubah akses.


Kelebihan Beban Konstruktor C#

Dalam C#, kita dapat membuat dua atau lebih konstruktor dalam satu kelas. Hal ini dikenal sebagai overloading konstruktor. Misalnya,

using System;

namespace ConstructorOverload {

  class Car {   
    
    // constructor with no parameter
    Car() {
      Console.WriteLine("Car constructor");
    }
     
    // constructor with one parameter
    Car(string brand) {
      Console.WriteLine("Car constructor with one parameter");
      Console.WriteLine("Brand: " + brand);
    }

    static void Main(string[] args) {

      // call constructor with no parameter
      Car car = new Car();

      Console.WriteLine();

      // call constructor with parameter
      Car car2 =  new Car("Bugatti");
     
      Console.ReadLine();
    }
  }
}

Keluaran

Car constructor

Car constructor with one parameter
Brand: Bugatti

Dalam contoh di atas, kita telah membebani Mobil konstruktor:

Berdasarkan jumlah argumen yang diteruskan selama pemanggilan konstruktor, konstruktor yang sesuai dipanggil.

Di sini,

Untuk mempelajari lebih lanjut, kunjungi C# Constructor Overloading.


Bahasa C

  1. C# Kelas Bersarang
  2. C# Konstruktor Overloading
  3. Konstruktor C++
  4. Konstruktor Java
  5. Konstruktor enum Java
  6. Apa itu Cairan Pendingin Mesin Mobil?
  7. Java - Konstruktor
  8. Konfigurasi Silinder Mesin Mobil
  9. Memahami perpanjangan garansi mobil
  10. Mengapa filter oli mobil saya bocor?