الكلاسات والكائنات في Java | Class و Object بشرح مبسّط للغاية
حتى الآن تعلّمت كتابة أوامر مباشرة (طباعة، شروط، حلقات، دوال). الآن سننتقل إلى فكرة مهمّة جدًّا تجعل البرمجة أكثر تنظيمًا: البرمجة الكائنية (OOP).
لا تقلق من الاسم؛ الفكرة أسهل مما تبدو. البرمجة الكائنية تعني أن البرنامج يُبنى من “أشياء” (Objects) تمثّل شيئًا من الواقع: مثل شخص، سيارة، منتج، طالب، حساب بنكي… إلخ.
ولكي نصنع هذه “الأشياء”، نحتاج أولًا إلى “قالب” يصفها. هذا القالب هو Class.
تشبيه بسيط: القالب والكعكة
تخيّل أن لديك قالبًا لصنع كعكة.
- القالب = Class (وصف/شكل/مواصفات)
- الكعكة التي تنتج = Object (نسخة حقيقية من القالب)
يمكن أن تصنع من نفس القالب أكثر من كعكة. كذلك يمكنك إنشاء أكثر من Object من نفس Class.
إنشاء Class بسيط: Person
سننشئ Class اسمه Person (شخص).
سنضع بداخله “خصائص” (Properties) مثل الاسم والعمر.
في Java غالبًا نسمّي هذه الخصائص: Fields أو Variables داخل الكلاس.
class Person {
String name;
int age;
}
لاحظ:
- هذا الكلاس وحده لا يطبع شيئًا ولا ينفّذ شيئًا.
- هو مجرد وصف: “الشخص عنده اسم وعمر”.
إنشاء Object واستخدامه (الخطوة التي تجعل الكلاس “حيًّا”)
الآن سننشئ كائنًا (Object) من الكلاس Person. إنشاء الكائن يعني: حجز مساحة في الذاكرة لهذا الشخص، ثم تعبئة بياناته.
Person p1 = new Person(); p1.name = "Ahmed"; p1.age = 25; System.out.println(p1.name); System.out.println(p1.age);
شرح ما يحدث:
Person p1: متغير اسمه p1 نوعه Person.new Person(): إنشاء كائن جديد من Person.p1.name: الوصول إلى خاصية name داخل هذا الكائن.
لماذا نستخدم Class و Object؟
لأنها تجعل برنامجك منظّمًا وقابلًا للتوسع. بدل أن يكون لديك عشرات المتغيرات المبعثرة (name1, age1, name2, age2...) تجمع بيانات الشخص في كائن واحد واضح.
مثال: بدل هذا:
String name1 = "Ahmed"; int age1 = 25; String name2 = "Sara"; int age2 = 20;
تستطيع أن تفعل هذا بشكل أنظف:
Person p1 = new Person(); p1.name = "Ahmed"; p1.age = 25; Person p2 = new Person(); p2.name = "Sara"; p2.age = 20;
والآن أصبح من السهل التعامل مع “شخص” كوحدة واحدة.
أخطاء شائعة للمبتدئين
- نسيان كلمة
newعند إنشاء الكائن. - محاولة الوصول إلى الخصائص قبل إنشاء الكائن (يؤدي إلى أخطاء).
- الخلط بين اسم الكلاس (Person) واسم المتغير (p1).
✅ في الدرس القادم سنتعلم طريقة أفضل لتهيئة الكائن مباشرة عند إنشائه: Constructor.