21 أسئلة وأجوبة مقابلة OOP المتداولة لمعرفتها اليوم
نشرت: 2022-09-20يمكن أن تساعد أسئلة مقابلة البرمجة الشيئية المبرمجين والمطورين على تعزيز معرفتهم بالمفاهيم الأساسية في عالم البرمجة.
OOP هي واحدة من أكثر نماذج البرمجة ضرورة وضرورية ، حيث تركز على الكائنات والفئات بدلاً من الإجراءات والوظائف.
بعض لغات البرمجة المستندة إلى OOP هي Objective-C و Java و Ada و Perl و Python و C ++ والمزيد.
تسعى الشركات الكبرى إلى مطورين بارعين في الأساليب والأنماط الموجهة للكائنات.
لذلك ، إذا كنت تخطط للظهور في عملية المقابلة هذه ، فيجب أن يكون لديك فهم عميق لمفاهيم OOP.
دعنا نلقي نظرة على بعض أسئلة وأجوبة مقابلة OOP المتداولة لمساعدتك على الاستعداد للمقابلات والاختبارات.
البرمجة الشيئية (OOP): نظرة عامة

OOP هو نموذج برمجة يدور حول الكائنات. هنا ، تُعتبر الكائنات حالات حقيقية ، مثل فئة تتضمن بعض السلوكيات والخصائص المحددة في قالب الفصل.
على سبيل المثال ، لنفكر في سيارة. وفقًا لنموذج OOPs:
- الكائن : سيارة. يمكن أن يكون من أي نوع أو طراز ، مثل السيارة التي تمتلكها.
- الفئة : طراز السيارة أو نوعها ، مثل BMW و Chevrolet و Kia و Audi وغيرها.
- الخصائص : لون السيارة ، رقم هيكل السيارة ، نوع المحرك ، نوع التروس ، وأكثر من ذلك.
- السلوك : كيفية تغيير الترس وكيفية بدء تشغيل السيارة والمزيد.
هنا ، تُعرف الخصائص أيضًا باسم الخصائص أو السمات أو البيانات ، بينما تُعرف السلوكيات بالإجراءات أو الأساليب أو الوظائف في لغات البرمجة.
لذلك ، لنبدأ ببعض أسئلة مقابلة OOP المتداولة.
ما هو المقصود بمصطلح OOPs؟
الإجابة: البرمجة الشيئية (OOP) هي نموذج برمجة يعتمد على الكائنات والفئات بدلاً من الإجراءات والوظائف. يتم ترتيب الأشياء الفردية في فئات. تصف OOPs كيانات العالم الحقيقي بمفاهيم مثل تعدد الأشكال ، والاختباء ، والوراثة ، وما إلى ذلك ، ونماذج البرمجة.
تربط OOPs التعليمات البرمجية والبيانات معًا. الكائنات هي كيانات في العالم الحقيقي يتم تحديدها من خلال فئات ذات خصائص وسلوك معين ، في حين يتم تعريف الفئة على أنها نمط كائن معين. يُعرف أيضًا باسم نوع البيانات المعرفة من قبل المستخدم.
يتضمن ذلك برامج التصميم والتصنيع جنبًا إلى جنب مع تطبيقات الهاتف المحمول. على سبيل المثال ، يمكنك استخدام OOP لتصنيع برامج محاكاة النظام.
ما هي بعض نماذج البرمجة الأخرى غير OOPs؟

الإجابة: نماذج البرمجة هي طريقة لتصنيف لغات البرمجة بناءً على ميزة كل لغة. هناك نوعان من نماذج البرمجة:
- نموذج البرمجة الحتمية: يركز على كيفية تنفيذ المنطق ويحدد تدفق التحكم. يتضمن نموذج البرمجة الإجرائية ، البرمجة الشيئية (OOP) ، والبرمجة الموازية.
- نموذج البرمجة التصريحي: يركز على ما يجب تنفيذه في البرنامج ويحدد منطقه ، وليس تدفق التحكم. يتضمن نموذج البرمجة المنطقية ونموذج البرمجة الوظيفية ونموذج برمجة قواعد البيانات.
ما هو الفرق بين OOP و SOP؟
الإجابة: دعنا نفهم الفرق بين OOP و SOP مع هذا الجدول:
البرمجة الشيئية | البرمجة الموجهة نحو الهيكل |
إنه نموذج برمجة يعتمد على الكائنات بدلاً من الإجراءات والوظائف. | يوفر بنية منطقية للبرنامج ، حيث تنقسم البرامج إلى وظائف. |
يتبع نهجًا تصاعديًا | يتبع نهج من أعلى إلى أسفل |
يوفر إخفاء البيانات أو تغليفها | لا يوفر إخفاء البيانات |
يمكن أن تحل المشاكل المعقدة. | يمكن أن تحل المشاكل المعتدلة. |
يمكن استخدام التكرار المنخفض كرمز مرة أخرى | لا يدعم إعادة استخدام الكود. |
أكثر مرونة | أقل مرونة |
همها الأساسي هو البيانات. | همها الأساسي هو الهيكل المنطقي للبرنامج. |
ما هي السمات الرئيسية لل OOPs؟

الإجابة: فيما يلي الميزات الرئيسية لـ OOPs:
- ميراث
- التغليف
- التجريد
- تعدد الأشكال
- طريقة التجاوز
- طريقة التحميل الزائد
- أشياء
- الطبقات
- المنشئون والمدمرون
الوراثة وتعدد الأشكال والتغليف هي العناصر الأساسية لـ OOP التي تميز هذه الميزات عن اللغات غير OOP.
ما هو التغليف؟
الإجابة: التغليف هو طريقة لوضع الصنف والمتغيرات والطرق والمزيد داخل كبسولة وهو مطلوب للقيام بالعمل وتقديم نفس الكبسولة للمستخدم. بعبارات بسيطة ، يتم تجميع جميع الأساليب والبيانات الضرورية معًا ، ويتم إخفاء التفاصيل غير الضرورية عن المستخدمين.
يمكن تعريفه أيضًا بطرق أخرى:
- ربط البيانات: التغليف هو عملية ربط أعضاء البيانات جنبًا إلى جنب مع الطرق معًا كفئة أو ككل.
- إخفاء البيانات: التغليف هو عملية إخفاء المعلومات غير الضرورية ، مثل قيود الوصول إلى عضو كائن ، إلخ.
ما هو تعدد الأشكال؟

الجواب: لنفهم تعدد الأشكال من خلال فصل المصطلح إلى كلمتين يتكونان منه:
"بولي" تعني "كثير"
تعني كلمة "Morph" "الأشكال"
لذلك ، يمكن وصف تعدد الأشكال ككائن له أشكال مختلفة.
في OOPs ، يشار إليها على أنها العملية التي من خلالها تتصرف بعض البيانات أو الكائنات أو الطريقة أو الكود بشكل مختلف في ظل سياقات أو ظروف متعددة. هناك نوعان من تعدد الأشكال في نموذج OOPs:
- تشغيل تعدد الأشكال وقت
- تجميع تعدد الأشكال الزمني
بمعنى آخر ، إنها التعريفات المتعددة لواجهة واحدة. على سبيل المثال ، هناك فئة تسمى "مركبة" ، والتي تتكون من طريقة "سرعة". من المستحيل تحديد السرعة لأن المركبات المختلفة لها سرعات مختلفة. وبالتالي ، يمكن تعريف ذلك في الفئات الفرعية للتعاريف المختلفة للمركبات المختلفة.
ما هو تعدد الأشكال الثابت؟
الجواب: يُعرف تعدد الأشكال الثابت أيضًا باسم تعدد أشكال وقت التجميع. إنها الميزة التي يمكن من خلالها ربط كائن بالمشغل أو الوظيفة المعنية بناءً على القيم. يمكن تحقيق ذلك من خلال التحميل الزائد للمشغل أو طريقة التحميل الزائد.
هنا ، تستخدم الطرق اسمًا مشابهًا ، لكن تختلف معلمة كل اسم. يتصرف الكائن بشكل مختلف بالنسبة لمشغل مماثل. وبالتالي ، يتم تنفيذ طرق متعددة في نفس الفصل.
ما هو تعدد الأشكال الديناميكي؟

الإجابة: يُعرف تعدد الأشكال الديناميكي أيضًا باسم تعدد الأشكال في وقت التشغيل. يشير إلى نوع تعدد الأشكال في OOPs التي يتم من خلالها تسوية التضمين الفعلي للوظيفة أثناء التنفيذ أو وقت التشغيل. يمكن تحقيقه عن طريق تجاوز الطريقة.
على سبيل المثال ، يتم إنشاء صنفين ، الدراجة و Yamaha ، والفئة Yamaha توسع فئة الدراجة متجاوزة طريقة التشغيل (). نظرًا لأن طريقة الفئة الفرعية تتجاوز طريقة الفئة الأصل ، يتم استدعاؤها في وقت التشغيل.
ما هو الفصل؟
الإجابة: يمكن تعريف الفئة على أنها مخطط أو قالب يحتوي على بعض القيم ، تسمى بيانات العضو. كما يتضمن أيضًا بعض القواعد التي تُعرف بالوظائف أو السلوكيات. عند إنشاء كائن ، فإنه يأخذ تلقائيًا الوظائف والبيانات المحددة في الفصل.
ومع ذلك ، فإن الفئة هي مخطط أو قالب للكائنات. يمكن للمرء تصميم العديد من الكائنات حسب المتطلبات بناءً على الفصل. على سبيل المثال ، يتم إنشاء نموذج السيارة في البداية. بعد ذلك ، تم تصميم وحدات مختلفة من السيارات بناءً على نموذج السيارة.
ما هو الشيء؟

الإجابة: يمكن تعريف الكائن على أنه مثيل لفئة تحتوي على مثيل من السلوكيات والأعضاء المحددين في القالب. الكائن هو الكيان الفعلي الذي يتفاعل معه المستخدم ، لكن الفئة هي مجرد مخطط لهذا الكائن.
وبالتالي ، فإن الأجسام لها بعض الخصائص أو السلوك وتستهلك مساحة - على سبيل المثال ، طراز سيارة معين.
ما هو الفرق بين الفئة والبنية؟
الجواب: دعنا نفهم هذا بمساعدة الجدول:
فصل | بنية |
الفئات من الأنواع المرجعية. | الهياكل من أنواع القيمة. |
يتم تخصيصه لذاكرة الكومة. | يتم تخصيصه على ذاكرة المكدس. |
التخصيص أرخص في النوع المرجعي الكبير | التخصيص أرخص في نوع القيمة من نوع المرجع |
لديها ميزات لا حدود لها. | لها ميزات محدودة. |
فئة تستخدم في البرامج الكبيرة. | يستخدم الهيكل في البرامج الصغيرة. |
يحتوي على مُنشئ ومُدمِّر. | يحتوي على مُنشئ ذو معلمات أو ثابت. |
يستخدم كلمة رئيسية جديدة () في كل مرة يقوم فيها بإنشاء حالات. | يمكنه بسهولة إنشاء مثيلات مع أو بدون أي كلمات رئيسية. |
يمكن للفصل أن يرث من فئة أخرى. | لا يسمح للهيكل بالوراثة. |
يمكن حماية أعضاء بيانات الفصل. | لا يمكن حماية أعضاء البيانات في الهيكل. |
يمكن أن يكون أعضاء الوظيفة مجردة أو افتراضية | لا يمكن أن يكون أعضاء الوظيفة مجردة أو افتراضية |
يمكن أن يشتمل متغيرين مختلفين من الفئة على مرجع كائن مشابه. | يحتوي كل متغير على نسخته الخاصة. |
ما هو الميراث؟

الجواب: الوراثة هي إحدى ميزات OOPs التي تمكن الفصل من وراثة الخصائص الرئيسية لفئة أخرى. على سبيل المثال ، إذا كانت "السيارة" فئة ، فإن "السيارة" و "الدراجة" وما إلى ذلك ، هي فئات أخرى يمكن أن ترث الخصائص الرئيسية من فئة "السيارة".

تساعد هذه الميزة في التخلص من التعليمات البرمجية الزائدة ؛ وبالتالي ، تقليل حجم الكود. بعبارات بسيطة ، يتم تعريف الوراثة على أنها مُستقبل الخصائص من الفئة الأصلية إلى الفئة الفرعية. هنا ، "السيارة" هي فئة الوالدين ، و "السيارة" أو "الدراجة" عبارة عن فصول فرعية من المثال أعلاه.
بهذه الطريقة ، يمكنك إعادة استخدام كود البرمجة لفئة واحدة في فصل آخر دون كتابة نفس الرمز مرة أخرى أو إضاعة الوقت في العملية.
ما هي أنواع الميراث المختلفة؟
الجواب: هناك أنواع مختلفة من الميراث تستخدم في نموذج OOPs ، مثل:
- الميراث الفردي: يُعرّف بأنه الوراثة التي ترث فيها فئة واحدة الوظائف المشتركة لفئة أساسية واحدة.
- الميراث المتعدد: يأتي في الصورة عندما ترث فئة واحدة أكثر من فئة واحدة.
- الوراثة متعددة المستويات: هذا يعني أن الطبقة ترث من فئات أخرى ، وهي فئات فرعية من فئة أخرى.
- الميراث الهرمي: يشير إلى الوراثة حيث تحتوي فئة واحدة على فئات فرعية متعددة.
- الوراثة الهجينة: هي مزيج من الميراث متعدد المستويات والمتعدد.
ما هي حدود الميراث؟

الجواب: فيما يلي بعض حدود الإرث:
- يزيد من الجهد والوقت اللازمين لتنفيذ البرنامج. هذا لأنه يتطلب القفز من فصل إلى آخر بشكل متكرر ، الأمر الذي يستغرق وقتًا.
- ترتبط فئة الوالدين ، جنبًا إلى جنب مع فئة الأطفال ، بإحكام شديد ، وبالتالي ، مرونة أقل.
- يحتاج إلى دمج دقيق ، وإلا فإنه سيؤدي إلى نتائج غير كافية أو غير صحيحة.
- قد يؤدي تعديل واحد في البرنامج إلى تغيير في التعليمات البرمجية في كلا الفصلين الأم والطفل.
ما هو التجريد؟
الجواب: التجريد هو أحد عناصر OOPs. الدور الرئيسي للتجريد هو التعامل مع التعقيد. يتم ذلك عن طريق إخفاء التفاصيل غير المرغوب فيها عن المستخدمين. يتيح ذلك للمستخدمين تنفيذ منطق معقد فوق التجريد دون التفكير في التعقيد الخفي.
على سبيل المثال ، إذا كنت من محبي القهوة ، فأنت بحاجة إلى معرفة كمية الحليب وحبوب القهوة ومكعبات السكر التي تريد إضافتها لصنع فنجان من القهوة باستخدام آلة صنع القهوة. لا جدوى من التفكير في مبدأ عمل تلك الآلة. آلة صنع القهوة تعقيد خفي لا تحتاج إلى معرفته ، لكن عملية صنع القهوة ضرورة.
هناك نوعان من التجريد:
- تجريد البيانات
- تجريد العملية
ما هو المنشئ؟

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

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

الإجابة: معالجة الاستثناءات هي طريقة للاستجابة للأحداث غير المتوقعة أثناء تشغيل برنامج الكمبيوتر. يجب على المبرمجين "معالجة" الأحداث غير المرغوب فيها (استثناءات) لمنع تعطل نظام أو برنامج. بدون هذه الطريقة ، قد تؤدي الاستثناءات إلى تعطيل التشغيل المشترك للبرنامج وتؤدي إلى عدم الكفاءة أو المخاطر.
ما هي كتلة المحاولة / الالتقاط؟
الإجابة: جرب أو التقط الكلمات الرئيسية التي تمثل معالجة الاستثناءات بسبب أخطاء الترميز أو البيانات أثناء تنفيذ البرنامج.
- كتلة try هي كتلة التعليمات البرمجية حيث تحدث الاستثناءات
- كتلة catch تتعامل مع حالات الإمساك وتحاول حظر الاستثناءات
تُستخدم عبارات try and catch بشكل متكرر في لغات برمجة مختلفة ، بما في ذلك C ++. C # و Java و SQL و JavaScript. تتطابق كل عبارة try مع تعليمة catch من أجل معالجة التنفيذ. إليك بعض الأشياء التي يجب تذكرها في عبارات المحاولة والتقاط :
- كتلة المحاولة متبوعة بكتلة الالتقاط.
- كتلة المحاولة متبوعة بكتلة التقاط واحدة على الأقل.
- يتبع كتلة try كتلة محاولة أخرى ويتبعها كتلة catch.
استنتاج
OOP هو مفهوم أساسي يجب على المبرمجين معرفته. سيساعدك تعلمه جيدًا أيضًا على البرمجة جيدًا في اللغات التي تستخدم مفاهيم OOP.
إذا كنت تستعد لمقابلة أو اختبار ، فإن أسئلة وأجوبة المقابلة أعلاه ستساعدك على تحديث فهمك لمفاهيم OOP مثل الفصول والأشياء والتغليف وتعدد الأشكال والميراث والتجريد والمزيد. بهذه الطريقة ، يمكنك مواجهة المقابلات بثقة واجتيازها بنجاح لبناء حياتك المهنية.
يمكنك أيضًا إلقاء نظرة على بعض أسئلة مقابلة SQL هذه.