. الهيكل العام للمشروع
يعتمد المشروع على فكرة تمثيل الأشكال الهندسية برمجياً. يتكون من فئة أساسية (Superclass) تسمى Shape وعدة فئات فرعية (Subclasses) ترث منها.
2. المفاهيم البرمجية المستخدمة
الوراثة (Inheritance): الفئات Rectangle و Triangle ترث الخصائص العامة من الفئة الأم Shape (مثل اللون).
التعددية الشكلية (Polymorphism): نلاحظ في ملف Main.java أنه تم تعريف الكائنات باستخدام النوع العام Shape (مثل: Shape r = new Rectangle(...)). هذا يسمح بمعاملة أشكال مختلفة كأنها نوع واحد "Shape" مع الحفاظ على سلوك كل شكل الخاص.
تخطي الدوال (Method Overriding): * دالة getArea() يتم تعريفها في كل فئة فرعية لحساب المساحة بطريقتها الخاصة (الطول × العرض للمستطيل، ونصف القاعدة × الارتفاع للمثلث).
دالة toString() التي تم تخصيصها لتعطي مخرجات نصية واضحة كما يظهر في شاشة الـ Run (مثل: Rectangle [Color: Red, ... ]).
3. شرح المكونات (كما تظهر في الـ Tabs)
Shape.java: غالباً هي "Abstract Class" أو فئة عامة تحتوي على متغير color ودالة getArea().
Rectangle.java: تحتوي على سمات المستطيل (Length, Width) ومعادلة مساحته.
Triangle.java: تحتوي على سمات المثلث (Base, Height) ومعادلة مساحته.
Main.java: هي نقطة انطلاق البرنامج، حيث يتم إنشاء الكائنات، تمرير القيم (مثل اللون والأبعاد)، ثم طباعة التفاصيل والمساحة المحسوبة.
تحليل المخرجات (Output Analysis)
عند تشغيل البرنامج، قام بالآتي:
إنشاء مستطيل أحمر بأبعاد 10 و 5، وطباعة مساحته: 10 \times 5 = 50.0.
إنشاء مثلث أزرق بقاعدة 8 وارتفاع 6، وطباعة مساحته: 0.5 \times 8 \times 6 = 24.0.