Soplang Logo
Soplang

Classes

Object-oriented programming ee Soplang: qaab (class), dhaw (constructor), nafta (self), cusub (new), iyo dhaxal (inheritance).

Classes in Soplang

Soplang waxay taageertaa object-oriented programming. Class waxaa lagu qeexaa qaab, instance cusub waxaa lagu abuuraa cusub, gudaha methods-kana nafta waxay tilmaamaysaa instance-ka hadda.

KeywordMacnahaEnglish
qaabQeexidda classclass
dhawConstructor (waxaa wacaya cusub)constructor
naftaInstance-ka haddathis / self
cusubAbuur instance cusubnew
dhaxalKa dhaxal class kaleextends

Defining a Class – qaab

Jirka qaab wuxuu ka koobnaan karaa hawlo (methods) oo keliya. Xogta instance-ka (fields) waxaa lagu kaydiyaa nafta gudaheeda, inta badan constructor-ka dhaw.

class_basic.sop
qaab Qof {
  hawl dhaw(magac, da) {
      nafta.magac = magac
      nafta.da = da
  }

  hawl salaam() {
      celi "Salaan, waxaan ahay " + nafta.magac
  }

  hawl dhalasho() {
      nafta.da = nafta.da + 1
  }
}

Creating Instances – cusub

cusub waxay abuurtaa instance cusub, waxayna si toos ah u wacdaa dhaw iyadoo u gudbinaysa doodaha (arguments).

class_instances.sop
door aamina = cusub Qof("Aamina", 20)

qor(aamina.salaam())   // Salaan, waxaan ahay Aamina

aamina.dhalasho()
qor(aamina.da)         // 21

// Fields waa la akhrin karaa, waana la beddeli karaa
aamina.magac = "Aamina Cali"
qor(aamina.magac)      // Aamina Cali

qor(nooc(aamina))      // walax

Class aan lahayn dhaw sidoo kale waa la abuuri karaa: cusub Tiriye().

Inheritance – dhaxal

Class wuxuu ka dhaxli karaa class kale isagoo adeegsanaya dhaxal. Class-ka ilmaha ah wuxuu helayaa dhammaan methods-ka waalidka (oo uu ku jiro dhaw), wuxuuna beddeli karaa (override) method kasta isagoo qeexaya mid isku magac ah.

class_inheritance.sop
qaab Xayawaan {
  hawl dhaw(magac) {
      nafta.magac = magac
  }

  hawl cod() {
      celi "..."
  }

  hawl sharax() {
      celi nafta.magac + " wuxuu yiraahdaa " + nafta.cod()
  }
}

qaab Eey dhaxal Xayawaan {
  hawl cod() {
      celi "Waf!"
  }
}

qaab Bisad dhaxal Xayawaan {
  hawl cod() {
      celi "Myaaw!"
  }
}

door e = cusub Eey("Libaax")
door b = cusub Bisad("Mia")

qor(e.sharax())   // Libaax wuxuu yiraahdaa Waf!
qor(b.sharax())   // Mia wuxuu yiraahdaa Myaaw!

sharax() waxaa lagu qeexay Xayawaan, laakiin nafta.cod() waxay wacdaa nooca saxda ah ee instance-ka.

Objects in Collections

Instances waa qiimayaal caadi ah — waxaad ku kaydin kartaa liisas, u gudbin kartaa hawlo, kana soo celin kartaa hawlo.

class_collections.sop
qaab Akoon {
  hawl dhaw(lacag) {
      nafta.lacag = lacag
  }

  hawl dhig(x) {
      nafta.lacag = nafta.lacag + x
  }
}

door a = cusub Akoon(100)
a.dhig(50)
qor(a.lacag)                // 150

teed akoonno = [cusub Akoon(1), cusub Akoon(2)]
qor(akoonno[1].lacag)       // 2

Rules

  • Jirka qaab wuxuu ka koobnaan karaa hawl oo keliya. door x = 1 gudaha class waa khalad parser: Jirka qaabka waa in uu ka koobnaado hawl (methods) kaliya.
  • dhaw waa magaca constructor-ka; waxaa si toos ah u wacaya cusub.
  • nafta waxaa si toos ah loogu daraa method kasta — looma baahna inaad parameter ahaan u qorto.
  • Method-ka la raadinayo wuxuu ka bilaabmaa class-ka instance-ka, kadibna waalidka (dhaxal).

On this page