الصفوف والكائنات في لغة السي شارب

الصفوف والكائنات في لغة السي شارب|ما هي وما أهميتها؟

السي شارب تعرف بأنها لغة كائنية المنحى(OOP)، وبالتالي فهي تستخدم مفاهيم مثل الصفوف والكائنات، ولكن ما هي الصفوف والكائنات في لغة السي شارب وما أهميتها؟ هذا السؤال سوف أجيب عنه في هذا المقال إن شاء الله.

بإستخدام البرمجة كائنية المنحى (OOP) يتم حل المشاكل المعقدة عن طريق تجزئتها لكائنات، ولكي نستخدم الكائنات في لغة السي شارب، نحتاج إلى القيام بخطوتين وهما:

  • إنشاء صف (Class).
  • إنشاء كائن من الصف.

الصفوف والكائنات في لغة السي شارب

الصف في لغة السي شارب

الصفوف والكائنات في لغة السي شارب

لا يمكننا الحديث عن الكائنات قبل أن نفهم ما هي الصفوف وكيف تعمل؟ الصف هو عبارة عن مخطط للكائن، على سبيل المثال:

يمكننا أن نفكر في الصف على انه رسم تخطيطي أو نموذج أولي للمنزل، يحتوي على كل التفاصيل المتعلقة بالأرضيات والنوافذ والأبواب وما إلى ذلك.

وبالطبع يمكننا أن نبني منزلاً استناداً على المخطط. المنزل هو الكائن.

نستطيع إنشاء العديد من المنازل من المخطط نفسه، وبنفس الطريقة يمكننا إنشاء العديد من الكائنات من الصف نفسه.

يتم إنشاء الصف برمجياً بإستخدام الكلمة المحجوزة (Class) وبعدها بمسافة نضع اسم الصف

المثال

class ClassName {

}

في المثال أعلاه، قمنا بتعريف صف (Class) اسميناه (ClassName).الصف من الممكن أن يحتوي على:

  • الحقول: متغيرات لتخزين البيانات.
  • الطرائق(methods ): وهي توابع تستخدم لأداء مهمات محددة.

مثال

class Dog {
 
  //حقل
  string breed;
 
  //طريقة
  public void bark() {

  }
 
}

في المثال أعلاه:

  • Dog: هو اسم الصف.
  • breed: حقل.
  • ()bark: طريقة (تابع).

ملاحطة:

في لغة السي شارب: الحقول والطرائق داخل الصف تسمى أعضاء الصف.

الكائنات في لغة السي شارب

يمكن القول عن الكائن انه تجسيد للصف، أو مثيل له بمعنى آخر، مثلاً

اذا كان لدينا صف الكلب (Dog) فأن البلدغ(Bulldog) و الراعي الألماني(German Shepherd) و الصلصال(Pug) والتي هي من أنواع الكلاب سوف تكون الكائنات للصف الكلب.

إنشاء كائن من الصف

الصفوف والكائنات في لغة السي شارب

مثال

ClassName obj = new ClassName();

هنا استخدمنا الكلمة المحجوزة (new) لإنشاء كائن من الصف ClassName، حيث أن (obj) هو اسم الكائن.وهكذا يستطيع الكائن (obj) الوصول لكل الطرائق والحقول الموجودة في الصف (ClassName).

أقرأ أيضاً: الحلقات التكرارية في لغة السي شارب| ما بنيتها وكيف تستخدم؟

الوصول لمكونات الصف بإستخدام الكائن

يتم ذلك بإستخدام اسم الكائن متبوعاً بالمعامل ( . ) ويمكننا فهم الأمر أكثر مع مثال.

المثال

using System;

namespace ClassObject {

  class Dog {
    string breed;

    public void bark() {
      Console.WriteLine("Bark Bark !!");
      
    }

    static void Main(string[] args) {

      // إنشاء كائن من الصف  
      Dog bullDog = new Dog();

      // الوصول للحقل
      bullDog.breed = "Bull Dog";
      Console.WriteLine(bullDog.breed);

      // الوصول للطريقة أو التابع
      bullDog.bark();   

      Console.ReadLine();
     
    }
  }
}

خرج المثال

Bull Dog
Bark Bark !!

في البرنامج أعلاه، أنشأنا كائن اسمه (bullDog) من الصف (Dog)، وكما تلاحظ عزيزي القارئ لقد استخدمنا اسم الكائن والمعامل (.) للوصول إلى الحقل (breed).

//الوصول للحقل 
bullDog.breed = "Bull Dog";
// الوصول للتابع
bullDog.bark();

إنشاء العديد من الكائنات من نفس الصف

using System;

namespace ClassObject {

  class Employee {

    string department;

    static void Main(string[] args) {

      // إنشاء كائن
      Employee sheeran = new Employee();

      // الوصول للحقل
      sheeran.department = "Development";
      Console.WriteLine("Sheeran: " + sheeran.department);

      // إنشاء كائن آخر
      Employee taylor = new Employee();

   
      taylor.department = "Content Writing";
      Console.WriteLine("Taylor: " + taylor.department);

      Console.ReadLine();
    }
  }
}

الخرج

Sheeran: Development
Taylor: Content Writing

في المثال أعلاه، أنشأنا كائنين من الصف (Employee) وهما (taylor) و (sheeran)، وهنا نلاحظ أن كل من الكائنين لديه نسخته الخاصة من الحقل (department) مع قيم مختلفة.

إنشاء كائنات من صفوف مختلفة

يمكننا إنشاء كائن من صف ما داخل صف آخر، ويتضح ذلك بالمثال التالي:

المثال

using System;

namespace ClassObject {

  class Employee {
    public string name;

    public void work(string work) {
      Console.WriteLine("Work: " + work);
      
    }
  }

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

      // إنشاء كائن
      Employee e1= new Employee();

      Console.WriteLine("Employee 1");

      
      e1.name="Gloria";
      Console.WriteLine("Name: " + e1.name);

      //استدعاء طريقة
      e1.work("Coding"); 

      Console.ReadLine();
     
    }
  }
}

الخرج

Employee 1
Name: Gloria
Work: Coding

في المثال أعلاه، لدينا صفين الأول هو (Employee) والثاني (EmployeeDrive)، وأنشأنا كائن وهو (e1) من الصف (Employee) داخل الصف (EmployeeDrive).

استخدمنا الكائن (e1) للوصول للأعضاء الموجودين في الصف (Employee) من الصف (EmployeeDrive)، وهذا ممكن لأنة الأعضاء أو المكونات في الصف (Employee) الوصول لها عام (public).

هنا، نوع الوصول هو عام (public)، والذي يعني أن أعضاء الصف من الممكن الوصول لهم من أي صف آخر.سوف أخصص لهذا الأمر مقال منفصل إن شاء الله.

لماذا من المهم أن نستخدم الصفوف والكائنات

الصفوف والكائنات في لغة السي شارب

الصفوف والكائنات تساعدنا على تقسيم البرامج الكبيرة إلى مشاكل صغيرة.

افترض أنك تريد إنشاء لعبة تحتوي على المئات من الأعداء، وكل منهم يمتلك الحقول التالية (health) و (ammo) والطرائق()shoot و ()run.

بإستخدام البرمجة كائنية المنحى (OOP) يمكننا أن ننسأ صف واحد بإسم (Enemy) مثلاً، مع كل الحقول والطرائق التي ذكرناها، ومن ثم ننشأ العديد من الكائنات منه.

كل كائن سوف يكون له نسخته الخاصة من الحقول (health) و (ammo)، وايضاً من الطرائق ()shoot و ()run.

إقرأ أيضاً: استخدام الذكاء الصنعي في تطوير الألعاب [2023]

الخلاصة

وهكذا نكون قد وصلنا إلى نهاية هذا المقال والذي تحدثنا فيه عن الصفوف والكائنات في لغة السي شارب، وما هي أهميتها؟ ولم يبقى إلا أن اطلبك منك المشاركة في التصويت أداناه.

التصويت

[poll id=”14″]

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *