Некрӯз АКБАРОВ,
омӯзгори фанни технологияи
иттилоотии МТМУ №42, ноҳияи Мастчоҳ

Мафҳуми асосии забони барномасозии C# — ин барномасозии ба объект равонашуда — ББОР  (дар русӣ ООП – объектно-ориентированное программирование) мебошад.

 Методи барномасозии ба объект равонашуда аз С# ҷудонашаванда аст, ҳатто, барномаи содаи дар дараҷаи паст бошад ҳам, барои ҳамин ҳамаи барномаҳои С# ба объект равоншуда аст. Пеш аз оғози сохтани барномаҳо дар С# омӯхтани принсипҳои барномасозии ба объект равонашуда ба мақсад мувофиқ аст, ки дар оянда барои сохтани барномаҳои пурқувват имкон медиҳанд. ББОР дар худ рафтори самараноки барномасозиро муайян мекунад.

То ин дараҷа омада расидани барномасозӣ, аз замоне, ки аввалин насли мошинаҳои электронии ҳисоббарор (МЭҲ) баромада буд, то ин дам чанд тағйироту тараққиёт рух доданд. Масалан, дар насли аввалини МЭҲ-ҳо барномаҳо аз садҳо командаҳо иборат буда, хеле душворӣ пеш меовард. Ҳамин буд, ки барномасозҳо маҷбур шуданд, забони ассемблерро созанд. Забони ассемблер имкон дод, ки дар барномаҳои мураккаб фармонҳоро бо истифода аз нишонаҳои рамзӣ ифода кунанд. Мушкилиҳое, ки пайи ҳам пайдо шуда буданд, барои коркарди забонҳои барномасозии дар дараҷаи баланд будаи FORTRAN ва COBOL-ҳо сабаб шуд. Барномасозҳо аз ҳамаи имконоти ин забонҳо истифода бурданд, лекин бо ин ҳам қонеъ нашуданд ва дар натиҷа, забонҳои барномасозии таркибӣ (структурного программирования), ба монанди забони С-ро коркард намуданд. Барои пешгирии мушкилиҳое, ки одатан пайдо мешавад, дар соҳаи барномасозӣ методу конструксияҳо сохта шуданд. Инро дар бораи ББОР гуфтан мумкин аст. То пайдоиши ББОР рафтори барномасозии таркибӣ ғайриимкон буд. Барои ҳалли ин намуди мушкилиҳо талаботи ББОР лозим мешуд. ББОР ба худ ҳамаи ғояҳои барномасозии таркибиро ба мафҳуми нав ҷамъ овард, ки тарзи сохтани барномаҳои нав ва пурқувват пайдо шуд. Умуман, барнома дар яке аз ду усул ташкил карда мешавад: дар атрофи рамз ё ки маълумот. Барномаҳое, ки дар асоси принсипи барномасозии таркибӣ ташкил мешаванд, дар атрофи рамз ё «рамзҳое, ки ба маълумот таъсиркунанда мебошанд», сохта мешавад.

Дар ББОР бошад, баръакс аст: онҳо дар атрофи маълумот ташкил карда мешавад. Принсипи асосии ББОР бо иҷозати рамз маълумотро идора кардан аст. Дар ББОР маълумоту рамзҳо муайян карда мешавад, ки барои корбурд дар болои маълумот иҷозат шудааст.  

Ҳамаи забонҳои барномасозии ба объект равоншуда дар баробари С# се хосияти ББОР-ро дар бар мегирад:

1.Инкапсулятсия.

2.Полиморфизм.

3.Меросгирӣ (Наследование).

Инкапсулятсия — ин як намуди механизмест (сохт), ки маълумот ва рамзро якҷоя ба ҳаракат меорад. Ҳамзамон, онро аз таъсирҳои беруна ҳимоя намуда, иҷрои дурусташро таъмин мекунад. Забонҳои ба объект равонашуда ба «қуттии сиёҳ»-и тайёра монанд аст. Дар дохили он ҳамаи маълумот ва рамзҳои асосӣ ҷойгир шудааст. Дар вақти лозим маълумот ва рамзҳо бо қоидаҳои мувофиқ алоқаманд мешаванд, ки дар натиҷа, объект ба вуҷуд меояд. Ин объект элементе, ки инкапсулятсияро дастгирӣ мекунад, ба ҳисоб меравад. Рамзу маълумот дар объект: пӯшида ва кушода мешаванд. Аз ин маълум аст, ки пӯшидашавии маълумот ва рамзҳо танҳо ба қисмҳои боқимондаи объект рабт дорад, яъне, дар ин ҳолат барои истифода бурдани онҳо иҷозат дода мешавад. Гуфтан мумкин аст, ки маълумот ва рамзҳои пӯшида барои истифодаи берун аз ҳудуди объект иҷозат дода намешавад. 

Дар С# асоси инкапсулятсияро «синф»-ҳо ташкил намуда, синфҳо формаи объектро муайян мекунанд. Дар С# тасвири синфҳо барои сохтани объектҳо хидмат мерасонанд ва ин объектҳоро «нусха»-ҳои синфҳо гуфтан мумкин аст. Вазифаи синфҳо аз он иборат аст, ки як қатор усулҳои тасвиркуниро барои намоиши объектҳо дар худ ҷамъ меорад.

Рамзҳо ва маълумот, ташкилкуниҳо бо ҳамроҳи синфҳо «аъзоҳо» номида мешаванд. Маълумоте, ки бо ёрии синфҳо муайян мегарданд, «майдон»-ҳо ё ки «тағйирёбандаи нусха» номида мешаванд. Рамзҳое, ки маълумотро коркард мекунанд, дар дохили «функсия — аъзогӣ» иҷро мешавад. 

Полиморфизм – аз калимаи юнонӣ гирифта шуда, «маҷмуи формаҳо»-ро ифода мекунад. Ин як хусусиятест, ки барои ба як интерфейс иҷозати идора кардани ҳаракатҳои синфи умумиро медиҳад. Полиморфизмро монанди «фармон»-и автомашина фаҳмидан мумкин, ки қатъи назар аз сохтор ва ҳаҷм онро идора кардан мумкин мебошад. Хулоса, бо воситаи «фармон» сохтори механизми он ба тарафҳои гуногун як хел ҳаракат мекунад.

Ҳамин гуна принсипро дар соҳаи барномасозӣ низ истифода бурдан мумкин аст. Инро дар мисоли «стек» дида мебароем. Яъне, ин соҳаи хотираест, ки бо принсипи «якум омад — якум хидмат расонида шуд» кор мекунад. Фарз мекунем, ки дар барнома се намуди стек лозим мешавад:

1) барои қимматҳои бутун,

2) барои қимматҳои ҳақиқӣ – даҳӣ,

3) барои қимматҳои рамзӣ.

Дар мисоли мазкур алгоритм ин се намуди стекро ифода мекунад ва қатъи назар аз он ки дар стек се намудаш сабт мешавад, он бетағйир мемонад. Дар забонҳое, ки ба ББОР дахл надорад, барои ин хел мақсадҳо се намуди панели зербарномаҳои стекӣ бо номҳои гуногун сохтан лозим мешавад. Бо имконияти полиморфизм барои се навъи стекҳо дар С# як панели зербарномаи стекӣ сохтан кифоя аст.

Меросгирӣ — ин як ҷараёни муҳимеро мефаҳмонад, ки дар он як объект соҳиби хосиятҳои дигар объект мешавад. Меросгирӣ  имкони гузаронидани гурӯҳи хосиятҳои як объектро ба объекти дигар, яъне, принсипи муайян кардани хосиятҳои он дар асоси хосиятҳои дигар объектро медиҳад. 

Компилятори JIT имкони истифодаи системаҳои оператсиониро дар дараҷаи баланд фароҳам меоварад.   

Муҳити иҷроиши CLR онро бар уҳда мегирад. Асоси CLR дар китобхонаи mscoree.dll ифода карда мешавад, ки ин Microsoft.Net Runtime Execution Engine (китобхонаи иҷроиши рамз) ном дорад ва барои иҷрои он ҷавоб медиҳад. Асоси намуди додашудаҳои NET дар китобхонаи mscorlib.dll ифода карда шудааст.

Масалан, себи навъи «симиренко» ба синфҳои себ дохил мешавад, себҳо бошад, ба синфи меваҳо шомиланд, меваҳо бошад, ба синфи маҳсулоти хӯрокворӣ шомил мешаванд. Ин маънои онро дорад, ки синфи маҳсулоти ғизоӣ соҳиби як қатор хосиятҳо (хӯрданибоб, серғизо ва ғайра) аст, ки ин хосиятҳо ба зерсинфҳои меваҳо паҳн шудааст. 

Дар маҷмуъ, агар аз ин хел иерархия истифода бурда нашавад, барои ҳар як объект хосиятҳои онро дар алоҳидагӣ гузоштан зарур мешавад. Бо истифодабарии меросгирӣ интихоб кардани хосиятҳои махсус барои инкишоф ёфтани объект дар синфи худ кифоя аст. Дар ин баробар, он метавонад хосиятҳои умумии “волидон”-и худро гирад. Бо сабаби механизми меросгирӣ як объект ҳамчун нусхаи алоҳидаи синфи калонтар инкишоф меёбад. Яъне, ин зинаҳоест, ки тай кардани он марҳалаи мушаххаси барномасозиро комил менамояд ва барномаи мушаххасро барои ҷомеа пурра месозад.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *