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

Memahami Kelas Bersarang C#: Definisi, Penggunaan, dan Warisan

Memahami Kelas Bersarang C#

Jelajahi cara mendefinisikan, mengakses, dan mewarisi kelas bersarang di C# dengan contoh praktis yang menunjukkan praktik terbaik.

Di C#, sebuah kelas dapat dideklarasikan di dalam kelas lain. Tipe dalam disebut kelas bersarang. Misalnya:

class OuterClass { // ... outer members class InnerClass { // ... inner members } }

Contoh ini membuat InnerClass di dalam OuterClass. Tipe dalam hanya terlihat di dalam tipe luar kecuali modifier aksesnya memungkinkan sebaliknya.


Mengakses Anggota Kelas Bersarang

Untuk bekerja dengan tipe bersarang, Anda terlebih dahulu membuat instance dari setiap kelas secara terpisah.

1. Buat instance dari kelas luar

OuterClass outer = new OuterClass();

Di sini, outer adalah objek dari OuterClass.

2. Buat instance dari kelas bersarang

OuterClass.InnerClass inner = new OuterClass.InnerClass();

Karena InnerClass bersarang di dalam OuterClass, Anda mempersingkatnya dengan nama tipe luar.

Setelah diinstansiasi, Anda dapat memanggil anggota melalui referensi objek.

Contoh: Kelas Bersarang dengan Metode

using System; namespace NestedClassDemo { public class Car { public void DisplayCar() => Console.WriteLine("Car: Bugatti"); public class Engine { public void DisplayEngine() => Console.WriteLine("Engine: Petrol Engine"); } } class Program { static void Main(string[] args) { Car sportsCar = new Car(); sportsCar.DisplayCar(); Car.Engine petrolEngine = new Car.Engine(); petrolEngine.DisplayEngine(); Console.ReadLine(); } } }

Output

Car: Bugatti Engine: Petrol Engine

Contoh ini menunjukkan cara membuat objek dari kelas luar Car dan kelas bersarang Engine serta memanggil metodenya.

Perhatikan bahwa Anda tidak dapat memanggil metode tipe bersarang secara langsung dari instance luar:

// Invalid sportsCar.DisplayEngine();

Mengakses Anggota Kelas Luar dari Dalam Kelas Bersarang

Kelas bersarang dapat mereferensikan anggota dari tipe tempatnya berada. Anda dapat menggunakan instance dari tipe luar atau nama tipe luar untuk anggota statis.

Menggunakan Instance untuk Mengakses Anggota Instance

using System; namespace NestedClassDemo { public class Car { public string Brand = "Bugatti"; public class Engine { public void ShowBrand() { Car car = new Car(); Console.WriteLine("Brand: " + car.Brand); } } } class Program { static void Main(string[] args) { Car.Engine engine = new Car.Engine(); engine.ShowBrand(); Console.ReadLine(); } } }

Output

Brand: Bugatti

Mengakses Anggota Statis Tanpa Instantiasi

using System; namespace NestedClassDemo { public class Car { public static string Brand = "Bugatti"; public class Engine { public void ShowBrand() { Console.WriteLine("Brand: " + Car.Brand); } } } class Program { static void Main(string[] args) { Car.Engine engine = new Car.Engine(); engine.ShowBrand(); Console.ReadLine(); } } }

Output

Brand: Bugatti

Warisan yang Melibatkan Kelas Bersarang

Kelas bersarang dapat berpartisipasi dalam warisan sama seperti tipe lainnya.

Menurunkan Kelas dari Kelas Luar

using System; namespace NestedClassDemo { class Computer { public void Display() => Console.WriteLine("Method of Computer class"); public class CPU { // Additional members can be added here } } class Laptop : Computer { // Laptop inherits all members of Computer } class Program { static void Main(string[] args) { Laptop laptop = new Laptop(); laptop.Display(); Console.ReadLine(); } } }

Output

Method of Computer class

Menurunkan Kelas dari Kelas Bersarang

using System; namespace NestedClassDemo { class Computer { public class CPU { public void Display() => Console.WriteLine("Method of CPU class"); } } class Laptop : Computer.CPU { // Laptop inherits members of Computer.CPU } class Program { static void Main(string[] args) { Laptop laptop = new Laptop(); laptop.Display(); Console.ReadLine(); } } }

Output

Method of CPU class

Saat mewarisi kelas bersarang, Anda harus mempersingkat tipe dengan nama kelas luarnya, misalnya, Computer.CPU.

Bahasa C

  1. Kelas dan Objek C#: Fondasi untuk OOP yang Kuat
  2. Memahami Modifier Akses C#: Public, Private, Protected, Internal, dan Lainnya
  3. Konstruktor C#: Jenis, Contoh, dan Pola Lanjutan
  4. Kata Kunci Static C#: Menguasai Variabel, Metode, dan Kelas Statis
  5. Menguasai Kelas dan Metode Abstrak C#: Panduan Praktis
  6. Memahami Kelas Bersarang C#: Definisi, Penggunaan, dan Warisan
  7. Memahami Kelas dan Metode Parsial C#
  8. Menguasai Kelas dan Metode Tersegel di C#—Kapan Menggunakannya, Contoh Jelas, dan Tingkatkan Keamanan serta Performa Kode
  9. Menguasai Overloading Konstruktor dalam C#
  10. Memahami Polimorfisme C++: Panduan Praktis