الأصناف والبرمجة الكائنية
تعريف صنف
sad
صنف حيوان
# الحقول
متغير اسم
متغير صوت
# الباني (Constructor)
باني(اسم، صوت)
هذا.اسم = اسم
هذا.صوت = صوت
نهاية
# دالة
دالة تحدث()
اطبع_سطر(هذا.اسم + " يقول: " + هذا.صوت)
نهاية
# دالة نصية
دالة نصي()
ارجع "حيوان(" + هذا.اسم + ")"
نهاية
نهاية
متغير قطة = جديد حيوان("قطة"، "مياو")
قطة.تحدث() # قطة يقول: مياوالوراثة
sad
صنف كلب يرث حيوان
متغير السلالة
باني(اسم، سلالة)
الأساس(اسم، "هاو")
هذا.السلالة = سلالة
نهاية
# تجاوز الدالة (Override)
دالة تحدث()
اطبع_سطر(هذا.اسم + " (" + هذا.السلالة + "): هاو هاو!")
نهاية
دالة العب()
اطبع_سطر(هذا.اسم + " يلعب بالكرة 🎾")
نهاية
نهاية
متغير ريكس = جديد كلب("ريكس"، "لابرادور")
ريكس.تحدث() # ريكس (لابرادور): هاو هاو!
ريكس.العب() # ريكس يلعب بالكرة 🎾التحكم في الوصول
sad
صنف حساب_مصرفي
عام متغير صاحب_الحساب
خاص متغير الرصيد
محمي متغير رقم_الحساب
باني(صاحب، رصيد_ابتدائي)
هذا.صاحب_الحساب = صاحب
هذا.الرصيد = رصيد_ابتدائي
هذا.رقم_الحساب = "SA" + عشوائي(10000، 99999)
نهاية
عام دالة إيداع(مبلغ)
إذا (مبلغ > 0)
هذا.الرصيد += مبلغ
اطبع_سطر("تم الإيداع: " + مبلغ + " ريال")
نهاية
نهاية
عام دالة سحب(مبلغ)
إذا (مبلغ > هذا.الرصيد)
ارمي جديد خطأ("رصيد غير كافٍ")
نهاية
هذا.الرصيد -= مبلغ
نهاية
عام دالة اقرأ_الرصيد()
ارجع هذا.الرصيد
نهاية
نهايةالسمات (Traits)
sad
سمة قابل_للطباعة
دالة اطبع() # مجردة — يجب تنفيذها
نهاية
سمة محسوب
دالة احسب() ارجع 0 نهاية # لها تنفيذ افتراضي
نهاية
صنف فاتورة نفّذ قابل_للطباعة، محسوب
باني(البنود)
هذا.البنود = البنود
نهاية
دالة اطبع()
لكل بند في هذا.البنود
اطبع_سطر("• " + بند.الاسم + ": " + بند.السعر)
نهاية
اطبع_سطر("الإجمالي: " + هذا.احسب())
نهاية
دالة احسب()
متغير إجمالي = 0
لكل بند في هذا.البنود
إجمالي += بند.السعر
نهاية
ارجع إجمالي
نهاية
نهايةالصنف الساكن والثوابت
sad
صنف الرياضيات
ساكن ثابت pi = 3.14159265358979
ساكن دالة دائرة(نصف_القطر)
ارجع الرياضيات.pi * نصف_القطر ** 2
نهاية
نهاية
اطبع(الرياضيات.دائرة(5)) # 78.53...التالي: إدارة الأخطاء ←