Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ملخص - بناء الأشكال

جزء من قسم Object Oriented Programming في رحلة Dart على Coddy — الدرس 16 من 110.

challenge icon

التحدي

سهل

لنقم ببناء فئة Rectangle تجمع بين جميع تقنيات المنشئات (constructors) التي تعلمتها في هذا الفصل. ستنشئ فئة شكل متعددة الاستخدامات يمكن تهيئتها بطرق متعددة.

ستقوم بتنظيم الكود الخاص بك في ملفين:

  • rectangle.dart: قم بتعريف فئة Rectangle تحتوي على ما يلي:
    • حقلين من نوع final double هما: width و height
    • حقلين محسوبين من نوع final double هما: area و perimeter
    • منشئ رئيسي يأخذ width و height، باستخدام قائمة تهيئة (initializer list) لحساب area (width × height) و perimeter (2 × (width + height))
    • منشئ مسمى Rectangle.square(double side) يقوم بالتوجيه (redirects) إلى المنشئ الرئيسي بعرض وارتفاع متساويين
    • منشئ مسمى Rectangle.golden(double width) ينشئ مستطيلاً باستخدام النسبة الذهبية (height = width × 1.618)، مع التوجيه إلى المنشئ الرئيسي
    • منشئ ثابت Rectangle.unit() ينشئ مستطيلاً بمقاس 1×1 (ستحتاج إلى منشئ const منفصل لهذا الغرض)
    • دالة display() تقوم بطباعة معلومات المستطيل
  • main.dart: قم باستيراد فئة المستطيل الخاصة بك وأنشئ أربعة مستطيلات:
    • مستطيل مخصص بعرض 4.0 وارتفاع 3.0
    • مربع بضلع طوله 5.0
    • مستطيل ذهبي بعرض 10.0
    • مستطيل وحدة باستخدام المنشئ الثابت (قم بإنشائه كثابت وقت التجميع compile-time constant)
    قم باستدعاء display() لكل مستطيل بالترتيب المذكور أعلاه.

يجب أن تقوم دالة display() بالطباعة بهذا التنسيق تماماً:

Rectangle [width]x[height] | Area: [area] | Perimeter: [perimeter]

المخرجات المتوقعة:

Rectangle 4.0x3.0 | Area: 12.0 | Perimeter: 14.0
Rectangle 5.0x5.0 | Area: 25.0 | Perimeter: 20.0
Rectangle 10.0x16.18 | Area: 161.8 | Perimeter: 52.36
Rectangle 1.0x1.0 | Area: 1.0 | Perimeter: 4.0

جرّب بنفسك

import 'rectangle.dart';

void main() {
  // TODO: قم بإنشاء مستطيل مخصص بعرض 4.0 وارتفاع 3.0

  // TODO: قم بإنشاء مربع بطول ضلع 5.0

  // TODO: قم بإنشاء مستطيل ذهبي بعرض 10.0

  // TODO: قم بإنشاء مستطيل وحدة باستخدام المنشئ الثابت (constant constructor)
  // (قم بإنشائه كثابت وقت التصريف باستخدام 'const')

  // TODO: قم باستدعاء display() على كل مستطيل بالترتيب المذكور أعلاه
}

جميع دروس Object Oriented Programming