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.
| Keyword | Macnaha | English |
|---|---|---|
qaab | Qeexidda class | class |
dhaw | Constructor (waxaa wacaya cusub) | constructor |
nafta | Instance-ka hadda | this / self |
cusub | Abuur instance cusub | new |
dhaxal | Ka dhaxal class kale | extends |
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.
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).
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.
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.
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
qaabwuxuu ka koobnaan karaahawloo keliya.door x = 1gudaha class waa khalad parser: Jirka qaabka waa in uu ka koobnaado hawl (methods) kaliya. dhawwaa magaca constructor-ka; waxaa si toos ah u wacayacusub.naftawaxaa 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).
Built-in Functions in Soplang
Tixraac degdeg ah oo ku saabsan hawlaha ku-dhexjira Soplang (qor, gelin, nooc, abn, jajab, qoraal, bool, teed, walax, daji, kor, dherer, xul, baaxad).
Error Handling
Sida loo qabto khaladaadka Soplang: fasax iyo qabo (try/catch), qaabka fariimaha khaladka, iyo error codes-ka.