Синфлар ва синф аъзолари.
Янги тип синфни эълон қилиш билан тузилади. Синф - бу бир – бири билан функционал орқали боғланган ўзгарувчилар ва методлар тўпламидир. Синфларга амалиётдан кўпгина мисоллар келтириш мумкин. Масалан, автомабилни ғилдирак, эшик, ўриндиқ, ойна ва бошқа қисмлардан ташкил топган коллекция ёки ҳайдаш тезлигини ошириш, тўхтатиш, буриш имкониятларига эга бўлган объект деб тасаввур қилиш мумкин. Автомобил ўзида турли эҳтиёт қисмларни ва уларни функцияларини инкапсуляция қилади. Автомобил каби синфда ҳам инкапсуляция қатор имкониятларни беради. Барча маълумотлар битта объектда йиғилган ва уларга осонгина мурожаат қилиш, уларни ўзгартириш ва кўчириш мумкин. Сизнинг синфингиз билан ишловчи дастурий қисмлар, яъни мижозлар сизнинг объектингиздан, унинг қандай ишлашидан ташвишланмасдан, бемалол фойдаланишлари мумкин.
Синф ўзгарувчиларнинг ихтиёрий комбинациясидан, шунингдек бошқа синфлар типларидан иборат бўлиши мумкин. Синфдаги ўзгарувчилар ўзгарувчи – аъзолар ёки хоссалар дейилади. Саr синфи ўриндиқ, радиоприёмник, шина ва бошқа ўзгарувчи - аъзолардан иборат. Ўзгарувчи – аъзолар фақатгина ўзларининг синфларида ётадилар. Ғилдирак ва мотор автомобилнинг қандай таркибий қисми бўлса, ўзгарувчи – аъзолар ҳам синфнинг шундай таркибий қисмидир.
Синфдаги функциялар одатда ўзгарувчи аъзолар устида бирор бир амал бажарадилар. Улар функция – аъзолар ёки синф методлари деб айтилади. Mashina синфи методлари қаторига Haydash() ва Tuxtatish() методлари киради. Mushuk синфи ҳайвонни ёши ва оғирлигини ифодаловчи ўзгарувчи – аъзоларга эга бўлиши мумкин. Шунингдек, бу синфнинг функционал қисми Uxlash(), Miyovlash(), SichqonTutish() методларидан иборат бўлади.
Функция – аъзолар ҳам ўзгарувчи аъзолар сингари синфда ётади. Улар ўзгарувчи аъзолар устида амаллар бажаради ва синфни функционал имкониятларини аниқлайди.
Синфни эълон қилиш.
Синфни эълон қилиш учун class калитли сўзи, ундан сўнг очилувчи фигурали қавс, cўнг хоссалар ва методлари рўйхати ишлатилади. Синфни эълон қилиш ёпилувчи фигурали қавс ва нуқтали вергул орқали якунланади. Масалан, Mushuk синфини қуйидагича эълон қилиш мумкин.
Class Mushuk
{
unsigned int itsYosh ;
unsigned int itsOgirlik ;
void Miyovlash()
}
Mushuk синфини эълон қилишда хотира заҳираланмайди. Эълон қилиш, компиляторга Mushuk синфини мавжудлигини, ҳамда унда қандай қийматлар сақлаши мумкинлиги (itsYosh, itsOgirlik) ва у қандай амалларни бажариши мумкинлиги (Miyovlash() методи) ҳақида хабар беради. Бундан ташқари, бу эълон қилиш орқали компиляторга Mushuk синфининг ўлчами, яъни ҳар бир Mushuk синфи объекти учун компилятор қанча жой ажратиши лозимлиги ҳақида ҳам маълумот беради. Масалан, жорий мисолда бутун қиймат учун тўрт байт талаб қилинса, Mushuk синфи объекти ўлчови саккиз байт бўлади. (itsYosh ўзгарувчиси учун тўрт байт, itsOgirlik ўзгарувчиси учун тўрт байт). Miyovlash() методи хотирадан жой ажратишни талаб қилмайди.
Do'stlaringiz bilan baham: |