الانتقال إلى المحتوى الرئيسي
الوحدة 2 · الدرس 1 من 23/14 في الدورة~12 min
دروس الوحدة (1/2)

الفئات والكائنات

Java هي لغة تركز على البرمجة الشيئية (OOP). في OOP، نقوم بنمذجة العالم الحقيقي باستخدام الكائنات. يحتوي الكائن على حالة (بيانات) وسلوكيات (إجراءات).

الفئات والكائنات

  • الفئة: عبارة عن مخطط (أو قالب) يحدد خصائص وسلوك نوع الكائن.
  • الكائن: هو مثيل ملموس تم إنشاؤه من فئة.

على سبيل المثال، إذا كانت Car هي الفئة، فإن سيارتك في المرآب هي الكائن الفعلي.

حقول المثيل والبنائين

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

المُنشئ له ** نفس اسم الفئة ** وليس له نوع إرجاع (ولا حتى void).

Java
class Dog {
    // Instance fields
    String name;
    int age;

    // Constructor
    public Dog(String name, int age) {
        this.name = name; // 'this' refers to the current object's field
        this.age = age;
    }
}

إنشاء كائن باستخدام new

لإنشاء كائن في الذاكرة، نستخدم الكلمة الأساسية new متبوعة بمنشئ الفئة:

Java
public class Main {
    public static void main(String[] args) {
        // Creating a Dog object
        Dog myDog = new Dog("Fido", 3);

        // Accessing fields
        System.out.println(myDog.name + " is " + myDog.age + " years old.");
    }
}

المرجع this

تشير الكلمة الأساسية this في Java إلى الكائن الحالي الذي يتم تنفيذ المُنشئ أو الطريقة عليه. يتم استخدامه بشكل أساسي لتجنب الغموض عندما يكون لمعلمات المُنشئ نفس اسم حقول مثيل الكائن (التظليل المتغير):

Java
class User {
    String username;

    public User(String username) {
        this.username = username; // this.username is the instance field, username is the parameter
    }
}

تخصيص الذاكرة: المكدس مقابل الكومة

يعد فهم كيفية تخصيص Java للذاكرة أمرًا ضروريًا:

  1. المكدس: إنها منطقة ذاكرة سريعة ومنظمة حيث يتم تخزين المتغيرات الأولية ومراجع الكائنات (عناوين الذاكرة) المحلية للطرق.
  2. الكومة: إنها منطقة ذاكرة أكبر وديناميكية حيث يتم تخصيص الكائنات الفعلية (باستخدام الكلمة الأساسية new).

عندما نعلن عن محمي_INLINE_7:

  • تم إنشاء المرجع myDog على المكدس.
  • يتم إنشاء كائن Dog الفعلي ببياناته على الكومة.
  • يشير المتغير myDog إلى موقع الكائن على الكومة.

جربه بنفسك

تمرين#java.m2.l1.e1
المحاولات: 0جارٍ التحميل…

أكمل فئة الشخص عن طريق إضافة اسم الحقل والمنشئ المناسب. بعد ذلك، في الطريقة الرئيسية، قم بإنشاء كائن شخص باسم p بالاسم Alice.

جارٍ تحميل المحرر…
إظهار التلميح

اكتب `اسم السلسلة؛` داخل الفصل، قم بتعريف المُنشئ `public Person(String name) { this.name = name; }` وإنشاء مثيل له باستخدام `شخص جديد('أليس')`.

الحل متاح بعد 3 من المحاولات

تمرين#java.m2.l1.e2
المحاولات: 0جارٍ التحميل…

قم بإنشاء فئة كتاب بعنوان الحقول (String) والصفحات (int)، ومنشئ كامل، وقم بإنشاء مثيل في الطريقة الرئيسية لكتاب يسمى b بعنوان Moby Dick و600 صفحة.

جارٍ تحميل المحرر…
إظهار التلميح

تذكر تحديد كلا الحقلين في Book، وتخطيطهما في المُنشئ باستخدام `this.title = title;` و`this.pages = pages;`، واستخدام new Book('Moby Dick', 600)`.

الحل متاح بعد 3 من المحاولات

تمرين#java.m2.l1.e3
المحاولات: 0جارٍ التحميل…

قم بإنشاء فئة منتج باسم الحقول (سلسلة) والسعر (مزدوج)، ومنشئ يقوم بتهيئة كلا الحقلين. في الطريقة الرئيسية، قم بإنشاء كائن منتج باسم p باسم الكمبيوتر المحمول والسعر 999.99.

جارٍ تحميل المحرر…
إظهار التلميح

قم بتعريف الحقول "اسم السلسلة" و"السعر المزدوج" في المنتج، ثم قم بتعيينها في المُنشئ باستخدام "this.name = name;" و"this.price = Price;"، وأخيرًا قم بإنشاء الكائن في الطريقة الرئيسية.

الحل متاح بعد 3 من المحاولات