البرمجة

فهم إنشاء الكائنات واستخدام الجينريكس

عندما تقوم بإنشاء كائن من فئة معينة في لغة البرمجة، مثل القاموس (Dictionary) في الأمثلة السابقة، فإنك في الواقع تقوم بتخصيص مساحة في الذاكرة لهذا الكائن وتهيئته لاستخدام السلوك والخصائص التي تعرفها لهذه الفئة. بمعنى آخر، عندما تقوم بتعريف متغير بنوع الفئة، مثل Dictionary webster = new Dictionary();، فإنك ببساطة تخزن مرجعًا (reference) لكائن من نوع الفئة في المتغير. ومن ثم، يمكنك الوصول إلى الأساليب (methods) والمتغيرات (variables) التي تعرضها الفئة عن طريق هذا المرجع.

بالنسبة لسؤالك عن الفرق بين النوع المحدد على اليمين والنوع الذي تم تعريفه على اليسار، فهو يشير إلى مفهوم يسمى “التعليق القوي” (Covariance) و “التعليق الضعيف” (Contravariance) في برمجة الجينريكس (Generics)، وهي ميزة متقدمة تسمح بتبديل أنواع الفئات بدون الحاجة إلى تغيير الشفرة بشكل كبير.

عندما تقوم بتحديد النوع على اليمين (في الجزء الذي يستخدم الفئة مباشرة)، فإنك ببساطة تقوم بتحديد تعليمة تعريف الكائن. أما النوع الذي تم تعريفه على اليسار، فيحدد نوع المرجع الذي يمكن أن يستخدم لتخزين الكائن. بعبارة أخرى، في حالة ArrayList list = new LinkedList();، فإن القائمة المرجعية (list) هي من نوع ArrayList، ولكن الكائن الفعلي الذي تم إنشاؤه هو من نوع LinkedList. هذا يعني أنك تتعامل مع القائمة باستخدام واجهة ArrayList ولكن الكائن الذي تتفاعل معه في الذاكرة هو LinkedList.

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

المزيد من المعلومات

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

عملية إنشاء الكائن تتم عن طريق استخدام الكلمة المفتاحية “new” مع اسم الفئة التي ترغب في إنشاء كائن منها. على سبيل المثال، في لغة الجافا، يمكنك إنشاء كائن من فئة Dictionary كما في المثال التالي:

java
Dictionary webster = new Dictionary();

هنا، تم إنشاء متغير باسم “webster” من نوع Dictionary، وتم تعيين قيمة جديدة له باستخدام الكلمة الرئيسية “new” متبوعة بفئة Dictionary.

بمجرد إنشاء الكائن، يمكنك الوصول إلى السلوك والخصائص التي تعرفها الفئة من خلال استخدام الكائن الجديد. على سبيل المثال، يمكنك استدعاء الأساليب المعرفة في فئة Dictionary أو الوصول إلى المتغيرات العضوية فيها.

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

على سبيل المثال، في الكود التالي:

arduino
ArrayList<String> list = new LinkedList<String>();

تم تعريف المتغير “list” من نوع ArrayList، ولكن تم إنشاء الكائن باستخدام LinkedList. وهذا يشير إلى أنه على الرغم من أنك تتعامل مع القائمة باستخدام واجهة ArrayList، إلا أن الكائن الذي يتم تعامل معه في الذاكرة هو LinkedList. هذا يظهر مدى مرونة الجينريكس في سماحه بتبديل أنواع البيانات بدون الحاجة إلى تغيير الشفرة بشكل كبير.

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر