مفاهيم OOPs في Java: ما هي الأساسيات مع الأمثلة

ما هو OOPS؟

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

OOP يعني "البرمجة الشيئية" هو مفهوم معروف ومستخدم على نطاق واسع في لغات البرمجة الحديثة مثل جافا.

مفاهيم OOPs في جافا مع أمثلة

التاليwing هي مفاهيم OOPs العامة في Java:

1) الطبقة

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

2) الكائن

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

3) الميراث

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

4) تعدد الأشكال

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

5) التجريد

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

6) التغليف

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

7) الجمعية

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

8) التجميع

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

9) التكوين

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

مزايا OOPs (نظام البرمجة الشيئية):

  • توفر مفاهيم OOPs في Java بنية معيارية سهلة الفهم وواضحة للبرامج.
  • يمكن إعادة استخدام الكائنات التي تم إنشاؤها للبرامج الموجهة للكائنات في برامج أخرى. وبالتالي فهو يوفر تكلفة تطوير كبيرة.
  • من الصعب كتابة البرامج الكبيرة، ولكن إذا كان فريق التطوير والتصميم يتبع مفاهيم OOPS، فيمكنهم التصميم بشكل أفضل مع الحد الأدنى من العيوب.
  • إنه يعزز نمطية البرنامج لأن كل كائن موجود بشكل مستقل.

مقارنة OOPS مع أنماط البرمجة الأخرى بمساعدة مثال

دعونا نفهم على سبيل المثال كيف تختلف مفاهيم Java OOPs عن أساليب البرمجة الأخرى.

لغات البرمجة يمكن تصنيفها إلى 3 أنواع أساسية

  1. لغات البرمجة غير المنظمة: الأكثر بدائية من بين جميع لغات البرمجة التي تتمتع بتدفق متسلسل للتحكم. يتم تكرار الكود من خلال البرنامج
  2. لغات البرمجة المنظمة: لديه تدفق غير متسلسل للتحكم. يسمح استخدام الوظائف بإعادة استخدام الكود.
  3. لغات البرمجة الشيئية: يجمع بين البيانات والعمل معًا.

انقر هنا إذا لم يكن من الممكن الوصول إلى الفيديو

دعونا نفهم هذه الأنواع الثلاثة مع مثال.

لنفترض أنك تريد إنشاء برنامج مصرفي بوظائف مثل

  1. ايداع
  2. سحب النقود
  3. إظهار الرصيد

لغات البرمجة غير المنظمة

أقدم لغة برمجة كانت لغة برمجة غير منظمة. سيحتوي الكود الأساسي للغاية للتطبيق المصرفي بلغة برمجة غير منظمة على متغيرين لرقم حساب واحد وآخر لرصيد الحساب

int account_number=20;
int account_balance=100;

لنفترض أنه تم إيداع مبلغ 100 دولار.

account_balance=account_balance+100

التالي تحتاج إلى عرض رصيد الحساب.

printf(“Account Number=%d,account_number)
printf(“Account Balance=%d,account_balance)

الآن يتم سحب مبلغ 50 دولارًا.

account_balance=account_balance-50

مرة أخرى، تحتاج إلى عرض رصيد الحساب.

printf(“Account Number=%d,account_number)
printf(“Account Balance=%d,account_balance)

البرمجة غير المنظمة

بالنسبة لأي عملية إيداع أو سحب أخرى – سوف تقوم بتكرار نفس الأسطر مرارًا وتكرارًا.

برمجة منظمة

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

برمجة منظمة

البرمجة الشيئية

في برنامجنا، نتعامل مع البيانات أو نقوم بعمليات محددة عليها.

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

فكر الخبراء في برمجة البرمجيات في الجمع بين البيانات والعمليات. ومن هنا جاءت ولادة البرمجة الشيئية والتي تسمى عادة OOPS.

سيكون لنفس الكود في لغات البرمجة الكائنية نفس البيانات وبعض الإجراءات التي يتم تنفيذها على تلك البيانات.

Class Account{
    int account_number;
    int account_balance;
public void showdata(){
    system.out.println(“Account Number”+account_number)
    System.out.println(“Account Balance”+ account_balance)
}
}

البرمجة الشيئية

من خلال الجمع بين البيانات والعمل، سنحصل على العديد من المزايا مقارنة بالبرمجة الهيكلية viz,

  • التجريد
  • التغليف
  • وراثة
  • تعدد الأشكال

تمت مناقشتها في أكبر ديtails في الدروس الناجحة