تعد البرمجة الموجهة للكائنات واحدة من أكثر نماذج البرمجة شيوعًا. هذا لأنه يصمم كلاً من البيانات والوظائف ويسمح لك بالتفكير من منظور كائنات العالم الحقيقي. تعتبر الفصول الدراسية جانبًا أساسيًا من جوانب البرمجة الموجهة للكائنات لأنها توفر المخطط الذي تحتاجه لإنشاء كائنات.

C # هي لغة برمجة شائعة متعددة النماذج ، تستخدم النموذج الموجه للكائنات. في هذه المقالة ، ستتعلم كيفية إنشاء واستخدام الفصول في C #.

إنشاء إعلان فئة

في C # ، يعتبر الفصل نوعًا مرجعيًا ، والذي سيحتوي على الامتداد لا شيء القيمة حتى تقوم بإنشاء كائن جديد للفئة. لإنشاء فصل دراسي جديد في C # ، ستحتاج إلى عدة مكونات:

  • معدّل وصول.
  • ال صف دراسي كلمة رئيسية.
  • الاسم الذي تريد تخصيصه للفصل.
  • زوج من الأقواس المتعرجة المفتوحة والمغلقة (والتي ستحيط بالسمات والمنشئات وطرق الفصل).
داخلي صف دراسيعميل{ }

ينشئ الكود أعلاه فئة جديدة يمكن الوصول إليها من قبل الفئات الأخرى في نفس التجميع (ملف تجميع). يحتوي C # على ستة معدّلات وصول بالضبط يمكنك استخدامها للتحكم في مستويات إمكانية الوصول لفئاتك ومتغيراتك وطرقك. معدلات الوصول الستة هي:

  • عام: يمكن لكل فصل (بغض النظر عن تجميعه) الوصول إلى الفصل العام وأفراده العامين (السمات والمنشئات والأساليب).
  • instagram viewer
  • خاص: يمكن فقط للفئة الخاصة وأعضائها الوصول إليها.
  • محمي: يمكن فقط للفئات المشتقة (فصول الأطفال والأحفاد) الوصول إلى الفئة المحمية.
  • داخلي: يمكن فقط للفئات في نفس التجمع الوصول إلى الفئة الداخلية.
  • الداخلية المحمية: يمكن فقط للفئات الموجودة في نفس التجميع أو فئة مشتقة من تجميع آخر الوصول إلى الفئة الداخلية المحمية.
  • خاصة محمية: يمكن فقط للفئات المشتقة في نفس التجميع الوصول إلى الفئة المحمية الخاصة.

التصريح عن السمات والوصول إليها

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

يتيح لك C # التصريح عن سماتك ومحوّلاتك ووصلاتك على النحو التالي:

داخلي صف دراسيعميل
{
// صفات
خاصint رقم المعرف
خاص اسم السلسلة ؛
خاصمزدوج المجموع؛

// واضعو
عامفارغSetIdNumber(int رقم معرف){ هذه.IdNumber = IdNumber ؛ }
عامفارغاسم مجموعة(اسم السلسلة){ هذه.Name = الاسم ؛ }
عامفارغSetTotal(مزدوج المجموع){ هذه. المجموع = المجموع ؛ }

// حاصل
عامintGetIdNumber(){ إرجاعهذه.IdNumber }
عام سلسلة GetName(){ إرجاعهذه.اسم؛ }
عاممزدوجGetTotal(){ إرجاعهذه.المجموع؛ }
}

شعبية أخرى لغات وجوه المنحى استخدم أيضًا النهج أعلاه. في الحقيقة ، إذا كنت تريد ذلك إنشاء فئات Java، سيكون عليك استخدام الهيكل أعلاه. ومع ذلك ، أصبح لدى C # الآن طريقة أسهل لإنشاء السمات والموصلات. في C # ، هذه الفئة لها نفس الوظيفة المذكورة أعلاه:

داخلي صف دراسيعميل
{
معرف رقم العملية العامة { احصل على; تعيين; }
اسم السلسلة العامة { احصل على; تعيين; }
ضعف المجموع العام { احصل على; تعيين; }
}

يحتوي الفصل أعلاه على ما تسميه C # الخصائص، وهي مجموعة من السمات (الحقول) والأساليب. مع الخصائص، يمكنك تقليل إعلان السمات ، والمحوّر ، ورمز الموصلات بمقدار النصف.

التصريح عن المنشئين

المنشئون هم جانب أساسي آخر للفصل. لإنشاء كائن من فئة ، سيتعين عليك استدعاء أحد منشئيها. يحتوي كل مُنشئ على مُعدِّل وصول اختياري ونفس اسم فئته. بالنسبة للغات البرمجة الموجهة للكائنات ، هناك ثلاثة أنواع عامة من المُنشئين:

  • المُنشئ الافتراضي: لا يأخذ أي وسيطات ويزود كل سمة بقيمة افتراضية.
  • المنشئ الأساسي: يأخذ وسيطة واحدة أو أكثر (حسب عدد المتغيرات في الفصل).
  • نسخة منشئ: يأخذ مُنشئًا آخر كوسيطة.

C # له مصطلح شامل للمُنشئين الأساسيين والافتراضيين أعلاه - مُنشئات المثيل. تحتوي لغة البرمجة هذه أيضًا على مُنشئين آخرين (خاص وثابت). تركز هذه المقالة على المنشئين التقليديين الثلاثة.

المُنشئ الافتراضي

// المُنشئ الافتراضي
عام عميل()
{
IdNumber = 0 ؛
الاسم = "مجهول";
المجموع = 0 ؛
}

منشئ أساسي

// المنشئ الأساسي
عامعميل(int IdNumber ، اسم السلسلة ، سلسلة CustomerType ، مزدوج المجموع)
{
هذه.IdNumber = IdNumber ؛
هذه.Name = الاسم ؛
هذه. المجموع = المجموع ؛
}

منشئ النسخ

// نسخ المنشئ
عام العميل (العميل السابقالعميل)
{
هذه.IdNumber = العميل السابق. رقم المعرف
هذه.Name = العميل السابق. اسم؛
هذه. المجموع = العميل السابق. المجموع؛
}

طرق الإنشاء

الطرق ليست مكونًا صفيًا حاسمًا ، لكنها مفيدة. يمكن للفصل أن يحتوي على طريقة واحدة أو أكثر. يحتوي الأسلوب على معدل وصول ونوع إرجاع واسم وجسم.

// طريقة
عام سلسلة تفاصيل العميل ()
{
إرجاع " بطاقة تعريف: " + رقم معرف + " اسم: " + الاسم + " المجموع: " + المجموع ؛
}

ترجع الكود أعلاه سلسلة تمثيل لكائن العميل.

خلق الأشياء

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

العميل جون = الجديد عميل()؛

ينشئ سطر الكود أعلاه عميلًا افتراضيًا ويخصصه لمتغير يسمى جون. مع جون، يمكنك الوصول إلى القيمة الافتراضية لكل سمة من سمات العميل.

وحدة التحكم.WriteLine(جون.اسم);

يؤدي تنفيذ الكود أعلاه إلى طباعة ما يلي في وحدة التحكم:

مجهول

يمكنك أيضًا استخدام ملف جون متغير للوصول إلى أي طريقة في فئة العملاء.

وحدة التحكم.WriteLine(جون.CustomerDetail());

يؤدي تنفيذ سطر الكود أعلاه إلى طباعة الإخراج التالي في وحدة التحكم:

المعرف: 0 الاسم: غير معروف المجموع: 0

لإنشاء كائن بسمات ، يمكنك استخدام المُنشئ الأساسي:

العميل John = عميل جديد (1001 ، "فلان الفلاني", 250.20);
وحدة التحكم.WriteLine(جون.CustomerDetail());

يؤدي تنفيذ الكود أعلاه إلى طباعة الإخراج التالي في وحدة التحكم:

بطاقة تعريف: 1001 اسم: جونظبيةالمجموع: 250.2

لإنشاء نسخة من الكائن أعلاه ، يمكنك استخدام مُنشئ النسخ:

العميل جوني = الجديد الزبون (جون) ؛
وحدة التحكم.WriteLine(جوني.CustomerDetail());

يؤدي تنفيذ الكود أعلاه إلى طباعة الإخراج التالي في وحدة التحكم:

بطاقة تعريف: 1001 اسم: جونظبيةالمجموع: 250.2

كما ترى ، يعد مُنشئ النسخ نسخة من المُنشئ الأساسي. يمكن لمُنشئ النسخ أيضًا أن يأخذ المُنشئ الافتراضي كوسيطة:

العميل جون = الجديد عميل()؛
العميل جوني = الجديد الزبون (جون) ؛
وحدة التحكم.WriteLine(جوني.CustomerDetail());

يؤدي تنفيذ الكود أعلاه إلى طباعة الإخراج التالي في وحدة التحكم:

المعرف: 0 الاسم: غير معروف المجموع: 0

يمكنك الآن إنشاء واستخدام فئات C #

يمكنك استخدام النموذج الموجه للكائنات في C # لتعريف الفئات وإنشاء كائنات منها. يمكنك إنشاء طرق لكل فئة والتي يمكن أن تعمل بعد ذلك على سمات الكائنات الخاصة بهم.

ومع ذلك ، فإن النموذج الموجه للكائنات ليس هو النموذج الوحيد الذي يجب أن تكون على دراية به. النماذج الثلاثة الأولى للبرمجة هي حتمية وموجهة للكائنات ووظيفية.