أهلاً بك! سأشرح لك مفهوم الكائنات والفئات (Classes and Objects) في لغة جافا، وهو من المفاهيم الأساسية في البرمجة الشيئية (Object-Oriented Programming).
الفئة (Class):
تخيل الفئة كقالب أو مخطط (Blueprint) يُستخدم لإنشاء الكائنات. تُحدد الفئة:
- الخصائص (Attributes): وهي البيانات التي يحتفظ بها الكائن، مثل الاسم، العمر، اللون، إلخ. تُعرف أيضًا بـ "المتغيرات الأعضاء" (Member Variables).
- السلوكيات (Behaviors): وهي الإجراءات التي يمكن للكائن القيام بها، مثل المشي، الأكل، النوم، إلخ. تُعرف أيضًا بـ "الدوال الأعضاء" (Member Methods).
بمعنى آخر، تُحدد الفئة نوع الكائن.
مثال: لنفترض أن لدينا فئة اسمها "سيارة" (Car). يمكن أن تتضمن هذه الفئة الخصائص التالية:
- اللون (Color)
- الشركة المصنعة (Make)
- الموديل (Model)
- السرعة (Speed)
ويمكن أن تتضمن السلوكيات التالية:
- التسارع (Accelerate)
- الفرملة (Brake)
- الانعطاف (Turn)
الكائن (Object):
الكائن هو مثال (Instance) من الفئة. هو تجسيد حقيقي للفئة في الذاكرة. عندما تُنشئ كائنًا، فإنك تُخصص مساحة في الذاكرة لتخزين خصائصه، ويمكنك استدعاء سلوكياته.
مثال: بناءً على فئة "سيارة" التي ذكرناها، يمكننا إنشاء كائنات مختلفة:
- سيارة حمراء من نوع "تويوتا كامري" موديل 2023.
- سيارة زرقاء من نوع "هوندا سيفيك" موديل 2022.
كل من هاتين السيارتين هما كائنان منفصلان، ولكنهما يشتركان في نفس النوع، الذي تُحدده الفئة "سيارة".
العلاقة بين الفئة والكائن:
الفئة هي المخطط، والكائن هو المبنى الذي تم إنشاؤه بناءً على هذا المخطط. يمكنك إنشاء العديد من الكائنات من نفس الفئة، وكل كائن سيكون له قيمه الخاصة لخصائصه.
مثال برمجي بسيط في جافا:
// تعريف الفئة "كلب" (Dog)class Dog { String name; // خاصية: الاسم int age; // خاصية: العمر
// سلوك: النباح void bark() { System.out.println("Woof!"); }}
public class Main { public static void main(String[] args) { // إنشاء كائن من الفئة "كلب" Dog myDog = new Dog(); myDog.name = "بوبي"; myDog.age = 3;
// استدعاء سلوك الكائن myDog.bark(); // سيطبع "Woof!"
System.out.println("اسم الكلب: " + myDog.name); System.out.println("عمر الكلب: " + myDog.age); }}
في هذا المثال:
Dog
هي الفئة.myDog
هو كائن من الفئةDog
.name
وage
هما خصائص الكائن.bark()
هو سلوك الكائن.
أهمية الكائنات والفئات:
- تنظيم الكود: تُساعد في تنظيم الكود وجعله أكثر قابلية للقراءة والصيانة.
- إعادة الاستخدام: تُمكن من إعادة استخدام الكود بسهولة.
- النمذجة: تُمكن من نمذجة الكائنات الحقيقية في العالم بشكل فعال.