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

C# Kelas Bersarang

Kelas Bersarang C#

Dalam tutorial ini, Anda akan belajar tentang kelas bersarang di C# dengan bantuan contoh.

Dalam C#, kita dapat mendefinisikan kelas di dalam kelas lain. Ini dikenal sebagai kelas bersarang. Misalnya,

class OuterClass {
  ...
  class InnerClass {
    ...
  }
}

Di sini, kami telah membuat kelas InnerClass di dalam kelas OuterClass . InnerClass disebut kelas bersarang.


Akses Anggota

Untuk mengakses anggota kelas bersarang, pertama-tama kita perlu membuat objeknya.

1.Buat objek Kelas luar

OuterClass obj1 = new OuterClass();

Di sini, kami telah membuat obj1 objek dari kelas OuterClass .

2. Buat objek Kelas Dalam

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

Anda dapat melihat bahwa kami telah menggunakan OuterClass.InnerClass untuk membuat obj2 objek kelas dalam. Ini karena InnerClass adalah kelas bersarang dari OuterClass .

Setelah kita membuat objek dari masing-masing kelas, kita dapat menggunakan nama objek dan operator titik untuk mengakses anggota dari setiap kelas.

Contoh:C# Kelas Bersarang

using System;
namespace CsharpNestedClass {
 
  // outer class
  public class Car {

    public void displayCar() {
      Console.WriteLine("Car: Bugatti");
    }
 
    // inner class
    public class Engine {
      public void displayEngine() {
        Console.WriteLine("Engine: Petrol Engine");
      }
    }
  }
  class Program {
    static void Main(string[] args) {

      // create object of outer class
      Car sportsCar = new Car();

      // access method of outer class
      sportsCar.displayCar();
 
      // create object of inner class
      Car.Engine petrolEngine = new Car.Engine();
      
      // access member of inner class
      petrolEngine.displayEngine();
 
      Console.ReadLine();
 
    }
  }
}

Keluaran

Car: Bugatti
Engine: Petrol Engine

Dalam program di atas, kami telah menyarangkan Engine kelas di dalam Car kelas.

Di dalam Program class, kita telah membuat objek dari kelas luar dan kelas dalam.

// object of outer class
Car sportsCar = new Car();

// object of nested class
Car.Engine petrolEngine = new Car.Engine();

Kami kemudian menggunakan objek ini untuk mengakses metode setiap kelas.

Catatan :Kami tidak dapat mengakses anggota kelas dalam menggunakan objek kelas luar. Misalnya,

// error code
sportsCar.displayEngine();

Di sini, kami tidak dapat mengakses displayEngine() metode kelas dalam Engine menggunakan sportsCar objek dari kelas luar.


Mengakses Anggota Kelas Luar Di Dalam Kelas Dalam

Kita dapat mengakses anggota kelas luar di dalam kelas dalam. Untuk ini kita menggunakan objek dari kelas luar. Misalnya,

using System;
namespace CsharpNestedClass {

  // outer class
  public class Car {
 
    public string brand = "Bugatti";

    // nested  class
    public class Engine {
      public void displayCar() {

        // object of outer class
        Car sportsCar = new Car();
        Console.WriteLine("Brand: " + sportsCar.brand);
      }
    }
  }

  class Program {
    static void Main(string[] args) {

       // object of inner class
       Car.Engine engineObj = new Car.Engine();
       engineObj.displayCar();

      Console.ReadLine();
    }
  }
}

Keluaran

Brand: Bugatti

Dalam contoh di atas, kita telah membuat sarang Engine kelas di dalam Car kelas. Perhatikan barisnya,

// inside Engine class
Car sportsCar = new Car();
Console.WriteLine("Brand: " + sportsCar.brand);

Di sini, kita telah menggunakan objek kelas Car untuk mengakses bidang merek .


Akses statis Anggota Kelas Luar Di Dalam Kelas Dalam

Jika kita perlu mengakses anggota statis dari kelas luar, kita tidak perlu membuat objeknya. Sebagai gantinya, kita bisa langsung menggunakan nama kelas luar. Misalnya,

using System;
namespace CsharpNestedClass {

  // outer class
  public class Car {
    //static member of outer class
    public static string brand = "Bugatti";

    // nested class
    public class Engine {
      public void display() {
        
        // access static member of outer class
        Console.WriteLine("Brand: " + Car.brand);
      }
    }
  }
  class Program {
    static void Main(string[] args) {

      // object of inner class
       Car.Engine obj = new Car.Engine();
       obj.display();

      Console.ReadLine();
    }
  }
}

Keluaran

Brand: Bugatti

Pada contoh di atas, kita telah membuat sarang Engine kelas di dalam Car kelas. Car memiliki bidang statis merek .

Di sini, kami telah mengakses bidang statis brand di dalam kelas dalam (Engine ) menggunakan nama kelas luar (Car ).

Console.WriteLine("Brand: " + Car.brand);

Mewarisi Kelas Luar

Seperti kelas biasa, kita juga dapat mewarisi kelas luar. Misalnya,

using System;
namespace CsharpNestedClass {
 
  // outer class
  class Computer {

    public void display() {
      Console.WriteLine("Method of Computer class");
    }
 
    // nested class
    public class CPU {
 
    }
   }

    class Laptop : Computer {
 
    }

  class Program  {
    static void Main(string[] args) {
 
      // object of derived class
      Laptop obj = new Laptop();
      obj.display();     
 
      Console.ReadLine();
    }
  }
}

Keluaran

Method of Computer class

Pada contoh di atas, kita telah menurunkan kelas Laptop dari kelas luar Computer .

Karena itu kami dapat mengakses display() metode kelas Computer menggunakan objek kelas Laptop .


Mewarisi kelas dalam

Di C#, kita juga bisa mewarisi kelas dalam. Misalnya,

using System;
namespace CsharpNestedClass {

  // outer class
  class Computer {

    // nested  class
    public class CPU {
      public void display() {
        Console.WriteLine("Method of CPU class");
      }

    }
  }
    
  // inheriting inner class
  class Laptop : Computer.CPU {

  }

  class Program  {
    static void Main(string[] args) {

      // object of derived class
      Laptop obj = new Laptop();
      obj.display();     

      Console.ReadLine();
    }
  }
}

Keluaran

Method of CPU class

Dalam contoh di atas, kami telah menurunkan Laptop kelas dari kelas dalam CPU .

Perhatikan bahwa kita telah menggunakan nama kelas luar bersama dengan kelas bersarang untuk mewarisi kelas dalam.

class Laptop : Computer.CPU {}

Bahasa C

  1. C# Kelas dan Objek
  2. C# Akses Pengubah
  3. Konstruktor C#
  4. C# Kata Kunci statis
  5. C# kelas abstrak dan metode
  6. C# Kelas Bersarang
  7. C# Kelas Parsial dan Metode Parsial
  8. C# kelas dan metode tersegel
  9. C# Konstruktor Overloading
  10. Polimorfisme dalam C++