D Programlama - Sınıflar ve Nesneler

Sınıflar, nesne yönelimli programlamayı destekleyen ve genellikle kullanıcı tanımlı türler olarak adlandırılan D programlamanın merkezi özelliğidir.

Sınıf, bir nesnenin biçimini belirtmek için kullanılır ve veri gösterimini ve bu verileri tek bir düzgün paket halinde işlemek için yöntemleri birleştirir. Bir sınıftaki veriler ve işlevlere sınıfın üyeleri denir.

D Sınıfı Tanımları

Bir sınıf tanımladığınızda, bir veri türü için bir plan tanımlarsınız. Bu aslında herhangi bir veriyi tanımlamaz, ancak sınıf adının ne anlama geldiğini, yani sınıfın bir nesnesinin nelerden oluşacağını ve böyle bir nesne üzerinde hangi işlemlerin gerçekleştirilebileceğini tanımlar.

Bir sınıf tanımı, anahtar kelimeyle başlar classardından sınıf adı; ve bir çift kaşlı ayraç içine alınmış sınıf gövdesi. Sınıf tanımının ardından noktalı virgül veya bildirimler listesi gelmelidir. Örneğin, Box veri türünü anahtar sözcüğünü kullanarak tanımladıkclass aşağıdaki gibi -

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

Anahtar kelime publiconu izleyen sınıfın üyelerinin erişim özniteliklerini belirler. Bir genel üyeye, sınıf nesnesi kapsamında herhangi bir yerden sınıfın dışından erişilebilir. Bir sınıfın üyelerini şu şekilde de belirtebilirsiniz:private veya protected bunu bir alt bölümde tartışacağız.

D Nesnelerini Tanımlama

Bir sınıf, nesnelerin planlarını sağlar, bu nedenle temelde bir sınıftan bir nesne oluşturulur. Bir sınıfın nesnelerini, temel türlerdeki değişkenleri tanımladığınızla tam olarak aynı tür bildirimlerle bildirirsiniz. Aşağıdaki ifadeler Box sınıfının iki nesnesini bildirir -

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

Box1 ve Box2 nesnelerinin her ikisi de kendi veri üyelerine sahiptir.

Veri Üyelerine Erişim

Bir sınıfın nesnelerinin genel veri üyelerine doğrudan üye erişim operatörü (.) Kullanılarak erişilebilir. Olayları netleştirmek için aşağıdaki örneği deneyelim -

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); 
}

Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -

Volume of Box1 : 210 
Volume of Box2 : 1560

Özel ve korumalı üyelere, doğrudan üye erişim operatörü (.) Kullanılarak doğrudan erişilemeyeceğini unutmamak önemlidir. Kısaca özel ve korumalı üyelere nasıl erişilebileceğini öğreneceksiniz.

D'de Sınıflar ve Nesneler

Şimdiye kadar, D Sınıfları ve Nesneleri hakkında çok temel fikirleriniz var. Aşağıda listelenen çeşitli alt bölümlerde tartışacağımız D Sınıfları ve Nesneleri ile ilgili başka ilginç kavramlar da vardır -

Sr.No. Konsept ve Açıklama
1 Sınıf üyesi işlevleri

Bir sınıfın üye işlevi, diğer herhangi bir değişken gibi, tanımına veya prototipine sahip olan bir işlevdir.

2 Sınıf erişim değiştiricileri

Bir sınıf üyesi, genel, özel veya korumalı olarak tanımlanabilir. Varsayılan olarak üyelerin özel olduğu varsayılır.

3 Yapıcı ve yıkıcı

Sınıf yapıcısı, sınıfın yeni bir nesnesi oluşturulduğunda çağrılan bir sınıftaki özel bir işlevdir. Yıkıcı ayrıca, oluşturulan nesne silindiğinde çağrılan özel bir işlevdir.

4 D'deki bu işaretçi

Her nesnenin özel bir işaretçisi vardır this nesnenin kendisine işaret eder.

5 D sınıflarına işaretçi

Bir sınıfa işaretçi, bir yapıya işaretçi ile tam olarak aynı şekilde yapılır. Aslında bir sınıf, içinde işlevleri olan bir yapıdır.

6 Bir sınıfın statik üyeleri

Bir sınıfın hem veri üyeleri hem de işlev üyeleri statik olarak bildirilebilir.