التصميم
خطّط للتسلسل الهرمي: اختر الفئة الأساسية المجرّدة، وسرد الأشكال الملموسة، وحدّد الحقول والدوال، وعرّف عمليات بسيطة متعددة الأشكال.
التصميم درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 3 دروس في المجموع.
الهدف والنطاق
الهدف: بناء تسلسل هرمي صغير للأشكال يتضمن فئة أساسية مجرّدة (Shape) وشكلين فعليين (Circle وRectangle). سنصمم العمليات المشتركة أولًا، ثم نتحقق من الخطة باستخدام نماذج أولية صغيرة من الشيفرة.
الأشكال والحقول
الأشكال: Circle (radius)، وRectangle (width، height). أبقوا الحقول فقط حيث تنتمي: radius داخل Circle، وwidth/height داخل Rectangle. تحتفظ الفئة الأساسية بعقود السلوك، لا بكل الحقول.
العمليات وتعدد الأشكال
العمليات المشتركة: area() وperimeter(). نعلن عنهما في Shape كي يتمكن أي Shape من الاستجابة لهذين الاستدعاءين. ثم يمكن لقائمة من Shape أن تحتوي على كائنات مختلطة من Circle وRectangle وتعالجها بطريقة موحّدة.
الشيفرة: مخطط API
النموذج الأولي 1: عرّفوا Shape مع area وperimeter، وCircle بسيطًا. يتحقق هذا من أن API المشتركة تعمل مع نوع فعلي واحد.
public class Main {
// Minimal API sketch to validate the design
static abstract class Shape {
abstract double area();
abstract double perimeter();
}
static class Circle extends Shape {
double radius;
Circle(double r) { radius = r; }
double area() { return Math.PI * radius * radius; }
double perimeter() { return 2 * Math.PI * radius; }
}
public static void main(String[] args) {
Shape s = new Circle(2.0);
System.out.println("area=" + s.area());
System.out.println("perimeter=" + s.perimeter());
}
}
المجموعات وإعداد التقارير
سنخزن الأشكال لاحقًا في قائمة ونطبع ملخصات مثل النوع والمساحة والمحيط. يحافظ منسّق صغير على سهولة قراءة المخرجات على الهاتف المحمول: شكل واحد في كل سطر، مع تقريب القيم إلى منزلتين عشريتين.
الشيفرة: قائمة الأشكال
النموذج الأولي 2: اخلطوا Circle وRectangle في مصفوفة واحدة من Shape واطبعوا كل عنصر. تتيح دوال الفئة الأساسية التعامل الموحّد (تعدد الأشكال).
public class Main {
static abstract class Shape {
abstract double area();
abstract double perimeter();
String info() {
// default helper for neat printing
return String.format("area=%.2f, per=%.2f", area(), perimeter());
}
}
static class Circle extends Shape {
double radius;
Circle(double r) { radius = r; }
double area() { return Math.PI * radius * radius; }
double perimeter() { return 2 * Math.PI * radius; }
public String toString() { return "Circle " + info(); }
}
static class Rectangle extends Shape {
double w, h;
Rectangle(double w, double h) { this.w = w; this.h = h; }
double area() { return w * h; }
double perimeter() { return 2 * (w + h); }
public String toString() { return "Rectangle " + info(); }
}
public static void main(String[] args) {
Shape[] arr = { new Circle(2.0), new Rectangle(3.0, 4.0) };
for (int i = 0; i < arr.length; i = i + 1) {
System.out.println(arr[i]);
}
}
}
التحقق من تصميم الفئة الأساسية
تحقق سريع: ما العناصر التي تنتمي إلى الفئة الأساسية المجرّدة Shape في هذا المشروع؟
مراجعة
مراجعة: تعلن الفئة الأساسية عن area وperimeter. وتخزن الفئات الفرعية البيانات الخاصة بكل شكل وتنفذ الحسابات. وتتيح لنا قوائم Shape طباعة أشكال مختلطة باستخدام حلقة واحدة.
الأسئلة الشائعة
هل درس «التصميم» مجاني؟
نعم — نص درس «التصميم» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 3 دروس في المجموع.
ماذا ستتعلم في «التصميم»؟
خطّط للتسلسل الهرمي: اختر الفئة الأساسية المجرّدة، وسرد الأشكال الملموسة، وحدّد الحقول والدوال، وعرّف عمليات بسيطة متعددة الأشكال. تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟
لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.
كم من الوقت يستغرق درس «التصميم»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟
نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.