Pemrograman D - Kelas & Objek

Kelas adalah fitur utama dari pemrograman D yang mendukung pemrograman berorientasi objek dan sering disebut tipe yang ditentukan pengguna.

Kelas digunakan untuk menentukan bentuk objek dan menggabungkan representasi data dan metode untuk memanipulasi data ke dalam satu paket yang rapi. Data dan fungsi di dalam kelas disebut anggota kelas.

Definisi Kelas D

Saat Anda menentukan kelas, Anda menentukan cetak biru untuk tipe data. Ini tidak benar-benar mendefinisikan data apa pun, tetapi mendefinisikan apa arti nama kelas, yaitu, apa objek kelas akan terdiri dan operasi apa yang dapat dilakukan pada objek semacam itu.

Definisi kelas dimulai dengan kata kunci classdiikuti dengan nama kelas; dan badan kelas, diapit oleh sepasang kurung kurawal. Definisi kelas harus diikuti oleh titik koma atau daftar deklarasi. Misalnya, kami mendefinisikan tipe data Kotak menggunakan kata kunciclass sebagai berikut -

class Box { 
   public: 
      double length;   // Length of a box 
      double breadth;  // Breadth of a box 
      double height;   // Height of a box 
}

Kata kunci publicmenentukan atribut akses dari anggota kelas yang mengikutinya. Anggota publik dapat diakses dari luar kelas di mana saja dalam lingkup objek kelas. Anda juga dapat menentukan anggota kelas sebagaiprivate atau protected yang akan kita bahas di sub-bagian.

Mendefinisikan Objek D.

Sebuah kelas menyediakan cetak biru untuk objek, jadi pada dasarnya sebuah objek dibuat dari sebuah kelas. Anda mendeklarasikan objek kelas dengan jenis deklarasi yang sama persis dengan yang Anda deklarasikan variabel tipe dasar. Pernyataan berikut mendeklarasikan dua objek kelas Box -

Box Box1;          // Declare Box1 of type Box 
Box Box2;          // Declare Box2 of type Box

Kedua objek Box1 dan Box2 memiliki salinan anggota datanya sendiri.

Mengakses Anggota Data

Anggota data publik dari objek kelas dapat diakses menggunakan operator akses anggota langsung (.). Mari kita coba contoh berikut untuk memperjelas semuanya -

import std.stdio;

class Box { 
   public: 
      double length;   // Length of a box 
      double breadth;  // Breadth of a box 
      double height;   // Height of a box 
}
  
void main() { 
   Box box1 = new Box();    // Declare Box1 of type Box 
   Box box2 = new Box();    // Declare Box2 of type Box 
   double volume = 0.0;     // Store the volume of a box here  
   
   // box 1 specification 
   box1.height = 5.0; 
   box1.length = 6.0; 
   box1.breadth = 7.0; 
   
   // box 2 specification 
   box2.height = 10.0; 
   box2.length = 12.0; 
   box2.breadth = 13.0;
   
   // volume of box 1 
   volume = box1.height * box1.length * box1.breadth; 
   writeln("Volume of Box1 : ",volume);
   
   // volume of box 2 
   volume = box2.height * box2.length * box2.breadth; 
   writeln("Volume of Box2 : ", volume); 
}

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

Volume of Box1 : 210 
Volume of Box2 : 1560

Penting untuk dicatat bahwa anggota pribadi dan dilindungi tidak dapat diakses secara langsung menggunakan operator akses anggota langsung (.). Sebentar lagi Anda akan mempelajari bagaimana anggota pribadi dan dilindungi dapat diakses.

Kelas dan Objek di D

Sejauh ini, Anda memiliki gagasan yang sangat mendasar tentang Kelas dan Objek D. Ada konsep menarik lebih lanjut terkait dengan Kelas dan Objek D yang akan kita bahas dalam berbagai sub-bagian di bawah ini -

Sr.No. Konsep & Deskripsi
1 Fungsi anggota kelas

Fungsi anggota kelas adalah fungsi yang memiliki definisi atau prototipe-nya di dalam definisi kelas seperti variabel lainnya.

2 Pengubah akses kelas

Seorang anggota kelas dapat didefinisikan sebagai publik, privat atau dilindungi. Secara default, anggota akan dianggap sebagai pribadi.

3 Pembuat & perusak

Konstruktor kelas adalah fungsi khusus dalam kelas yang dipanggil ketika objek baru kelas dibuat. Destruktor juga merupakan fungsi khusus yang dipanggil saat objek yang dibuat dihapus.

4 Penunjuk ini di D

Setiap objek memiliki penunjuk khusus this yang menunjuk ke objek itu sendiri.

5 Pointer ke kelas D.

Penunjuk ke kelas dilakukan dengan cara yang persis sama dengan penunjuk ke struktur. Sebenarnya kelas hanyalah sebuah struktur dengan fungsi di dalamnya.

6 Anggota statis kelas

Baik anggota data dan anggota fungsi kelas dapat dideklarasikan sebagai statis.