0Pricing
Java Academy · درس

تركيب الكائنات

أنشئ كائنات أكبر بدمج كائنات أصغر. يمثّل التركيب علاقات has-a، مثل Car الذي يملك Engine.

تركيب الكائنات درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 2 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 3 دروس في المجموع.

التعريف

يعني التركيب بناء كائن أكبر من كائنات أصغر يمتلكها. وهو علاقة يمتلك: فـ Car يمتلك Engine. يحافظ ذلك على صغر الأصناف وتركيزها، ويفوّض الكائن الكبير العمل إلى أجزائه.

الفوائد

يساعد التركيب على إعادة الاستخدام: يمكنك استبدال جزء من دون تغيير الكل. كما يحسّن قابلية الاختبار، لأن اختبار كل جزء يمكن أن يتم بصورة منفصلة. ابدأ ببساطة: اجعل صنفًا يعتمد على صنف آخر من خلال الحقول.

التركيب مقابل الوراثة

الوراثة علاقة هو (فـ Square هو Shape). أما التركيب فعلاقة يمتلك (فـ Car يمتلك Engine). فضّل التركيب أولًا، ولا تستخدم الوراثة إلا عندما تكون علاقة هو مناسبة بصورة طبيعية.

الامتلاك ودورة الحياة

عندما يمتلك كائن أجزاءه، يكون مسؤولًا عن إنشائها واستخدامها. وعادةً لا تعيش الأجزاء بمفردها؛ بل توجد لأن الكل موجود. تحافظ هذه الفكرة على وضوح المسؤوليات.

خطوات التصميم

حدّد الكل (Car) والأجزاء (Engine). اكتب ما يعرفه كل جزء وما يفعله. ثم ضع كائنات الأجزاء كحقول داخل الكل، واكتب أساليب صغيرة تستخدم تلك الأجزاء لإنجاز العمل.

الشفرة: مثال على علاقة يمتلك

الشفرة: يمتلك Car كائنًا من Engine ويستدعي أحد أساليبه. إن إنشاء الجزء أولًا وتمريره إلى الكائن يجعل الشفرة بسيطة ومرنة.

public class Main {
  // Very small classes to show composition (has-a)
  static class Engine {
    int horsepower;
    Engine(int hp) { horsepower = hp; }
    String info() { return horsepower + " HP engine"; }
  }

  static class Car {
    String model;
    Engine engine; // Car has an Engine (composition)
    Car(String m, Engine e) {
      model = m;
      engine = e; // store the part
    }
    void printSpecs() {
      // Use the part to build a message
      System.out.println(model + " with " + engine.info());
    }
  }

  public static void main(String[] args) {
    // Create part first
    Engine e = new Engine(90);
    // Assemble whole with the part
    Car c = new Car("CityCar", e);
    // Use the whole, which delegates to its part
    c.printSpecs();
  }
}

فحص التركيب

فحص سريع: أي عبارة تصف التركيب بأفضل صورة؟

مراجعة

مراجعة: يمثّل التركيب علاقة يمتلك. ابدأ بجزء صغير، وامنحه مهمة واضحة، ودَع الكائن الكامل يستخدمه من خلال استدعاءات أساليب بسيطة.

الأسئلة الشائعة

هل درس «تركيب الكائنات» مجاني؟

نعم — نص درس «تركيب الكائنات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 3 دروس في المجموع.

ماذا ستتعلم في «تركيب الكائنات»؟

أنشئ كائنات أكبر بدمج كائنات أصغر. يمثّل التركيب علاقات has-a، مثل Car الذي يملك Engine. تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟

لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 3.

كم من الوقت يستغرق درس «تركيب الكائنات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟

نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. this وtoString/equals/hashCode
  2. تركيب الكائنات
  3. نمذجة النطاق (من UML إلى الشفرة)
← العودة إلى Java Academy