مفاهيم أساسية
تقوم لغة جافا على مبدأ البرمجة الكائنية (Object Oriented Programming) والتي تفترض أن كل شيء عبارة عن كائن (Object) وهذا الكائن لكي نقوم بخلقه (Create) فإننا نحتاج إلى شيء يُسمى الصنف (Class) يصِف معلومات عامّة عن الكائن، وهذا الصنف (Class) نكتب فيه معلومات قياسية عامّة عن الكائنات (Objects) التي سوف نقوم بخلقها أو إنشائها من ذلك الصنف.
- وعليه، نستنتج ما يأتي:
- الكائنات (Objects) : يقوم مبدأ جافا على اعتبار بأن كل شيء هو عبارة عن كائن، والكائن يمتلك خصائص (states) وأفعال (behaviors)، لنأخذ على سبيل المثال: "الكلب" يمتلك خصائص وهي (1) الاسم (2) اللون (3) العمر، وغيرها من الخصائص. وأما اﻷفعال فهي (1) اﻷكل (2) النُباح (3) النوم، وغيرها من الخصائص.
- الصنف (Class) : وهو عبارة عن قالب أو نموذج قياسي عامّ يصِف الخصائص واﻷفعال الخاصة بالكائنات التي سوف تنتج (أي التي سنخلقها نحن).
- الدوال (Methods) : وهي اﻷفعال (behaviors)، ولكننا في البرمجة نسميها بالدوال (Methods) أو (Functions)، وأمّا المصطلح "أفعال" فكان من أجل مُجرّد التوضيح لا أكثر؛ وبالتالي فإن الصنف (Class) يجب أن يحتوي على دالة واحدة أو مجموعة من الدوال التي تقوم بالعديد من الأفعال والعمليات المختلفة بما فيها التلاعب بالبيانات وتنفيذ مجموعة من اﻹجراءات المتنوعة.
- المتغيرات القابلة للنسخ (Instance Variables) : إن كلّ كائن (Object) لديه مجموعة فريدة من المتغيرات الخاصة به، ويتم نسخ المتغيّر أولا من الصنف (Class) ومن ثم يتم إسناد قيمة إليه.
وعمومًا فإن المتغيرات (Variables) تدلّ على الخصائص (states) وأمّا الدوال (Methods) فهي تدلّ - كما ذكرنا أعلاه - على اﻷفعال (behaviors).
أمثلة مبسطة على مفهوم البرمجة الكائنية
مثال #1
فمثلًا: السيارة (Car) عندما تكون كـ مفهوم أو مبدأ عامّ أو نموذج قياسي عامّ، أو عندما تكون كمجردّ فكرة عمومية (حبرًا على ورق) فإنها تُعتبر صنف (Class)، فالسيارة يمكننا أن نقول أنها عبارة عن كتالوج أو مخطط عامّ أو خريطة، أو عندما نقول "سيارة" بشكل (نكرة)، فهذا يعني أننا لم نحدد سيارة بعينها، بل نشير إلى مفهوم عامّ وهو "أي سيارة".
وبالتالي، فإننا عندما نريد أن نخلق سيارة جديدة (كائن جديد "Object") فإننا نستعين بـ صنف السيارة (Class Car) الذي يُمثّل الخريطة بالنسبة إلينا حتى نستطيع أن نصنع سيارة جديدة.
وتحتوي السيارة الجديدة التي صنعناها (أو الكائن الجديد "Object" الذي خلقناه)، على مجموعة من الخصائص states واﻷفعال behaviors، وتتمثل الخصائص في (1) لون السيارة (2) اسم السيارة (3) عدد مقاعد السيارة، إلخ...، وأما اﻷفعال فتتمثل في (1) مشي السيارة (2) التفاف السيارة (3) توقف السيارة (4) اصطفاف السيارة، إلخ...
- سيارة مرسيدس: هي كائن جديد (Object) تمّ صنعه من صنف السيارة (Class Car)، ولديه خصائص وأفعال.
- سيارة كامري: هي كائن جديد (Object) تمّ صنعه من صنف السيارة (Class Car)، ولديه خصائص وأفعال.
- سيارة تويوتا: هي كائن جديد (Object) تمّ صنعه من صنف السيارة (Class Car)، ولديه خصائص وأفعال.
- وهكذا يمكن خلق\صنع الكائنات (Objects) على نفس هذا المنوال...
مثال #2
فمثلًا: اﻹنسان (Human) هو الصنف (Class) النموذجي العام، فهو عبارة عن كتالوج أو مخطط عام أو خريطة، أو عند قولنا "أي إنسان" بشكل نكرة، فهذا يعني أننا لم نحدد إنسانًا بعينه، وعليه:
- أحمد: كائن جديد (Object) تم خلقه من صنف اﻹنسان (Class Human)؛ ويمتلك أحمد خصائص كالاسم والعمر وأفعال كالمشي واﻷكل، إلخ...
- خالد: كائن آخر جديد (Object) تم خلقه من صنف اﻹنسان (Class Human)؛ ويمتلك خالد خصائص كالاسم والعمر وأفعال كالمشي واﻷكل، إلخ...
- عمر: كائن ثالث (Object) م خلقه من صنف اﻹنسان (Class Human)؛ ويمتلك خالد خصائص كالاسم والعمر وأفعال كالمشي واﻷكل، إلخ...
- وهكذا يمكن خلق\صنع الكائنات (Objects) على نفس هذا المنوال...
صور توضّح مبدأ البرمجة الكائنية
- انظر إلى الصور الثلاثة اﻵتية، حتى تفهم البرمجة الكائنية بشكل أكبر:
أريد أن أفهم كيف يتم ذلك حاسوبيًا (عبر Java)؟
- انظر الصورة اﻵتية لتفهم المقصود:




