Skip to content

Classes & OOP

Sad Language supports full object-oriented programming with Arabic keywords.

Defining a Class

sad
صنف Person
  باني(name, age)
    هذا.name = name
    هذا.age = age
  نهاية

  دالة greet()
    اطبع_سطر("Hi, I'm " + هذا.name + ", age " + هذا.age)
  نهاية
نهاية

متغير p = جديد Person("Ali", 25)
p.greet()   # Hi, I'm Ali, age 25

Key OOP Keywords

ArabicEnglishPurpose
صنفclassDefine a class
بانيconstructorConstructor method
هذاthisCurrent instance
جديدnewCreate instance
يرثinheritsInheritance
الأساسsuperCall parent

Inheritance

sad
صنف Animal
  باني(name)
    هذا.name = name
  نهاية
  دالة speak()
    اطبع_سطر(هذا.name + " makes a sound")
  نهاية
نهاية

صنف Cat يرث Animal
  باني(name)
    الأساس(name)
  نهاية
  دالة speak()
    اطبع_سطر(هذا.name + ": Meow!")
  نهاية
نهاية

متغير c = جديد Cat("Kitty")
c.speak()   # Kitty: Meow!

Traits

Traits define shared behavior that classes can implement:

sad
سمة Printable
  دالة print()
نهاية

صنف Point نفذ Printable
  باني(x, y)
    هذا.x = x
    هذا.y = y
  نهاية
  دالة print()
    اطبع_سطر("(" + هذا.x + ", " + هذا.y + ")")
  نهاية
نهاية

متغير p = جديد Point(3, 4)
p.print()   # (3, 4)

Access Modifiers

ArabicEnglishAccess
عامpublicAccessible everywhere
خاصprivateClass only
محميprotectedClass + subclasses

TIP

For more details, see the Arabic documentation for Inheritance and Traits.

Released under MIT License