مفاهيم وأمثلة OOP التي يجب أن يعرفها كل مبرمج

نشرت: 2021-02-26

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

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

قبل أن نتحدث عن الركائز الأربعة للبرمجة الموجهة للكائنات ، دعونا نتعرف على المصطلحات العامة التي نسمعها كثيرًا عند استخدام أي من اللغات الموجهة للكائنات: Java ، python ، c ++.

جدول المحتويات

فصل

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

اسم الفئة: الاسم الذي يطلق على الفصل الذي يبدأ بحروف كبيرة.

المعدلات: بناءً على وظيفة معدِّلات الفئة يمكن أن تكون إما عامة أو خاصة أو افتراضية.

الجسم : يحتوي نص الفصل على جميع الرموز الموجودة في الكائنات الموجودة في الفصل. يمكن أن يتراوح هذا من التصريح عن أي متغيرات أو إنشاء أي مُنشئ أو طرق تحتوي على وظيفة كائن.

موضوع

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

طرق

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

في الكود أعلاه ، Player هو الاسم المعطى لفصلنا ، في حين أن عمليات التشغيل عبارة عن معلمة تم تمريرها في طريقة Batsman التي تُرجع عمليات التشغيل التي سجلها عند استدعائها عبر كائن يسمى myobj.

معدِّلات الوصول

تحدد معدّلات الوصول في Java إمكانية الوصول أو مدى طريقة أو مُنشئ أو الفئة. الأنواع الأربعة لمعدلات الوصول هي:

  1. عام : الشفرة المكتوبة داخل الفصل متاحة للفئات الأخرى.
  2. خاص : لا يمكن الوصول إلى الكود المكتوب إلا ضمن تلك الفئة المحددة.
  3. الافتراضي : الشفرة المكتوبة يمكن الوصول إليها داخل نفس الحزمة.
  4. محمي : يمكن الوصول إلى الكود داخل حزمة وأيضًا من خلال فئة فرعية. في حالة عدم وجود فئة فرعية ، لا يمكن الوصول إلى الرمز.

الآن دعنا ننتقل ونتحدث عن جوهر البرمجة الشيئية.

ميراث

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

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

تعدد الأشكال

كما يوحي الاسم- تعدد الأشكال هو قدرة المتغير أو الوظيفة على الوجود في أشكال متعددة. يسمح تعدد الأشكال للمبرمج بأداء مهام مختلفة باستخدام نفس المتغير أو الوظيفة. يمكن اعتبار أحد الأمثلة الواقعية لتعدد الأشكال أرضًا مفتوحة ، والآن يمكن استخدام هذه الأرض لممارسة الرياضة.

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

عادة ما نواجه تعدد الأشكال المصطلحين وهما - طريقة التحميل الزائد وتجاوز الطريقة .

في طريقة التحميل الزائد ، يمكن استخدام طريقة واحدة بعدة طرق وتؤدي وظائف مختلفة. سيكون للطرق نفس الاسم ولكن يمكن استخدام معلمات مختلفة كمدخلات.

في Method Overriding ، يمكن تجاوز طريقة الفئة الأصل بواسطة الفئة الفرعية. باستخدام هذا ، يمكن أن تؤدي نفس الطريقة بشكل مختلف عندما يتم استدعاؤها بواسطة الفئة الأصلية والفئة الفرعية.

فيما يلي مثال على تعدد الأشكال:

في هذا المثال ، باستخدام نفس الطريقة يمكننا أداء مهام متعددة. نفس طريقة الصوت عند استخدامها في Bird ستخرج "Turr Turr" وعند استخدامها مع Duck ستخرج "Quack Quack". يتم عرض لقطة الإخراج أدناه-

التجريد

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

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

هنا ، أنشأنا كائنًا من الفئة الفرعية - البط الموروث من الفئة الرئيسية - الطيور. الإخراج موضح أدناه:

التغليف

التغليف هو عملية ربط الكود والبيانات معًا في وحدة واحدة. هنا ، يتم إخفاء متغيرات الفصل عن الفئات الأخرى (باستخدام الكلمة الأساسية خاصة ) ولكن لا يمكن الوصول إليها إلا من خلال وظيفة عضو. تُستخدم وظائف Setter و getter للوصول إلى المتغيرات الخاصة لفئة مجردة.

حتى الآن ، قمنا بتغطية أي شيء وكل ما يتعلق بالبرمجة الكائنية باستخدام Java. قبل أن نختتم ، دعونا نلقي نظرة على بعض مزايا مفهوم OOP.

  1. يمكن إعادة استخدام الكود بسهولة ، وبالتالي يوفر الكثير من الوقت والتكلفة لتطوير الرموز.
  2. يساعد في تصميم الكود بطريقة منظمة جيدًا بحيث لا يضطر أي مبرمج جديد إلى قضاء ساعات طويلة لفهم الكود.
  3. إلى جانب مساعدة المستخدمين في كتابة التعليمات البرمجية بكفاءة ، فإنه يتأكد من عدم المساس بالأمان.

الخروج: أسئلة وأجوبة مقابلة OOPs

تعلم دورات البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

خاتمة

في الختام ، قمنا في هذه المدونة بتغطية المفاهيم الأساسية لـ OOPs. تستخدم هذه المفاهيم على نطاق واسع في الصناعة والتطبيقات الأخرى. لكي تصبح مبرمجًا ماهرًا ، يجب أن يكون لديك فهم قوي لهذه المفاهيم. في المدونات القادمة ، سنكشف عن العديد من مفاهيم البرمجة الأساسية الأخرى التي ستساعدك على تطوير الخبرة في هذا المجال.

إذا كنت مهتمًا بمعرفة المزيد حول تطوير البرامج كاملة المكدس ، فتحقق من برنامج upGrad & IIIT-B's Executive PG في تطوير البرامج الكامل المكدس المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم و 9+ مشاريع و المهام ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.]

ما هو العامل؟

العامل هو عملية حسابية تحسب حاصل ضرب رقم معين وجميع الأرقام الموجودة أسفله. العامل هو منتج يشير إلى عدد مرات ضرب الرقم في واحد. على سبيل المثال ، مضروب الرقم 5 هو 5x4x3x2x1 ، وهو ما يساوي 120. مضروب 1 هو 1 ومضروب 0 هو أيضًا 1. برنامج العثور على عاملي رقم هو السؤال الأكثر شيوعًا في المقابلة وهو شيء يجب أن يكون على أطراف يدك.

كيف تكتب برنامج العودية مضروب؟

عامل الضرب للرقم n يُعرَّف بأنه n! = 1 × 2 × 3 × 4 × ... × ن. عامل الضرب هو 120. يتم تعريف دالة المضروب على أنها مضروب (5) = 120. الدالة العودية هي وظيفة تستدعي نفسها. هذا مثال على دالة عاملة في مضروب النمط العودي (n) = n * عاملي (n - 1). تعد كتابة برنامج تكراري عاملي أمرًا بسيطًا للغاية ، كما أن الكود مشابه جدًا للإصدار التكراري. لكتابة النسخة التكرارية ، نستخدم متغيرًا يسمى n ونزيده بمقدار واحد ونضربه في المتغير المسمى prod ، والذي يتتبع القيم المتتالية لـ n. يتم تخزين قيمة الإخراج أيضًا في المتغير المسمى prod. في النسخة العودية ، ما زلت تستخدم متغيرًا يسمى n. ومع ذلك ، لا تحتاج إلى متغير لتخزين قيمة prod ويمكنك إرجاع prod مباشرة من الوظيفة.

ما هو العودية في البرمجة؟

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