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

Konstruktor C#: Jenis, Contoh, dan Pola Lanjutan

Konstruktor C#

Temukan cara konstruktor menginisialisasi objek di C#, mencakup semua jenis konstruktor, pola, dan praktik terbaik.

Di C#, konstruktor adalah metode khusus yang dipanggil secara otomatis saat instance baru dari kelas dibuat. Berbeda dengan metode biasa, konstruktor:


Membuat Konstruktor C#

Definisikan konstruktor di dalam kelas dengan mencocokkan nama kelas:

class Car { // konstruktor Car() { // kode inisialisasi } }

Di sini, Car() adalah konstruktor. Ini dipanggil menggunakan kata kunci new:

new Car();

Misalnya:

Car car1 = new Car();

Lihat juga: C# Class and Objects.


Jenis Konstruktor

Kategori konstruktor yang umum meliputi:


1. Konstruktor Tanpa Parameter

Konstruktor tanpa parameter disebut konstruktor tanpa parameter atau default. Contoh:

using System; namespace ConstructorDemo { class Car { // konstruktor tanpa parameter Car() { Console.WriteLine("Car Constructor"); } static void Main(string[] args) { new Car(); Console.ReadLine(); } } }

Output

Car Constructor

2. Konstruktor Berparameter

Konstruktor dapat menerima argumen untuk menginisialisasi field instance:

using System; namespace ConstructorDemo { class Car { string brand; int price; // konstruktor berparameter Car(string theBrand, int thePrice) { brand = theBrand; price = thePrice; } static void Main(string[] args) { Car car1 = new Car("Bugatti", 50000); Console.WriteLine("Brand: " + car1.brand); Console.WriteLine("Price: " + car1.price); Console.ReadLine(); } } }

Output

Brand: Bugatti Price: 50000

3. Konstruktor Default

Jika Anda menghilangkan konstruktor, kompiler menyediakan konstruktor tanpa parameter implisit yang menginisialisasi field ke nilai default mereka. Contoh:

using System; namespace ConstructorDemo { class Program { int a; static void Main(string[] args) { Program p1 = new Program(); Console.WriteLine("Default value of a: " + p1.a); Console.ReadLine(); } } }

Output

Default value of a: 0

Field numerik default ke 0, sementara string dan objek default ke null.


4. Konstruktor Salinan

Konstruktor salinan membuat instance baru dengan menyalin status objek lain:

using System; namespace ConstructorDemo { class Car { string brand; // konstruktor utama Car(string theBrand) { brand = theBrand; } // konstruktor salinan Car(Car c1) { brand = c1.brand; } static void Main(string[] args) { Car car1 = new Car("Bugatti"); Console.WriteLine("Brand of car1: " + car1.brand); Car car2 = new Car(car1); Console.WriteLine("Brand of car2: " + car2.brand); Console.ReadLine(); } } }

Output

Brand of car1: Bugatti Brand of car2: Bugatti

5. Konstruktor Private

Menandai konstruktor private mencegah instantiasi eksternal, berguna untuk pola singleton atau kelas utilitas.

Contoh

using System; namespace ConstructorDemo { class Car { private Car() { Console.WriteLine("Private Constructor"); } } class CarDrive { static void Main(string[] args) { // Car car1 = new Car(); // kesalahan waktu kompilasi Console.ReadLine(); } } }

Kesalahan:

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

Catatan: Saat konstruktor private, semua anggota kelas harus statis untuk memungkinkan akses melalui nama kelas.


6. Konstruktor Statis

Konstruktor statis berjalan sekali per tipe, sebelum anggota instance atau statis diakses. Ini tidak dapat dipanggil langsung dan tidak boleh memiliki parameter.

using System; namespace ConstructorDemo { class Car { static Car() { Console.WriteLine("Static Constructor"); } Car() { Console.WriteLine("Default Constructor"); } static void Main(string[] args) { Car car1 = new Car(); Car car2 = new Car(); Console.ReadLine(); } } }

Output

Static Constructor Default Constructor Default Constructor

Catatan: Hanya satu konstruktor statis per kelas; tidak boleh memiliki parameter atau modifier akses.


Overloading Konstruktor C#

Definisikan beberapa konstruktor dengan daftar parameter yang berbeda untuk menyediakan pembuatan objek yang fleksibel. Contoh:

using System; namespace ConstructorOverloadDemo { class Car { Car() { Console.WriteLine("Car constructor"); } Car(string brand) { Console.WriteLine("Car constructor with one parameter"); Console.WriteLine("Brand: " + brand); } static void Main(string[] args) { Car car = new Car(); Console.WriteLine(); Car car2 = new Car("Bugatti"); Console.ReadLine(); } } }

Output

Car constructor Car constructor with one parameter Brand: Bugatti

Kompiler memilih konstruktor yang cocok berdasarkan jumlah dan tipe argumen. Pelajari lebih lanjut di C# Constructor Overloading.


Bahasa C

  1. Memahami Kelas Bersarang C#: Definisi, Penggunaan, dan Warisan
  2. Menguasai Overloading Konstruktor dalam C#
  3. Memahami Konstruktor C++: Default, Parameterized, dan Copy Dijelaskan
  4. Menguasai Konstruktor Java: Tipe, Penggunaan, dan Contoh Praktis
  5. Konstruktor Enum Java Dijelaskan dengan Contoh Praktis
  6. Memahami Pendingin Mesin Mobil: Tujuan, Jenis, dan Pemeliharaan
  7. Memahami Konstruktor Java: Inisialisasi dan Praktik Terbaik
  8. Bagaimana Jumlah Silinder Mengentuk Performa Mesin Modern
  9. Garansi Mobil Perpanjangan: Cara Melindungi Anda dan Hemat Uang
  10. Penyebab Umum Kebocoran Filter Oli Mobil & Cara Mengatasinya