Полиморфизмді жүзеге асыру үшін ОБП тілі кеш байланысу механизмін қолдауы қажет. Кеш байланысу механизмінің мәні мынада: жіберілген хабарламаға жауап қату үшін керекті нақты тәсілдің адресі компиляция этапында емес, прогрмманың орындалу барысында –
хабарламаны жіберу кезінде анықталады
Кеш байланысуды жүзеге асыру үшін объект тәсілі жӛніндегі мәлімет оның ӛзінде бар болуы керектігі айқын. Әдетте, қайсыбір класстың экземплярында ӛз тәсілдерінің кӛрсеткіші бар болады немесе класстың барлық экземплярлары үшін ортақ осындай кӛрсеткіштер кестесіне сілтеме жасайды. Хабарлама жіберу компилятор арқылы осы мәліметті объекттің экземплярынан оқу және қажет адрес бойынша тәсілді шақыруға алмастырылады. Класстың барлық экземплялары үшін тәсілдер бірдей болғандықтан оларды компьтер жадысында бір мәрте сақтаған дұрыс.
Си++ және Турбо Паскаль тілдерінде кеш байланысу арқылы virtual кілттік сӛзімен сипатталған тәсілдер шақырылады. Ал, Смолток тілінде кеш байланысу арқылы барлық тәсілдер шақырылады.
Осылайша, ОБП-ң идеяларын тиімді пайдалану үшін сол тілде объект, хабарлама, объект инкапсуляциясы, класс механизмі, мұрагерлік механизмі, полиморфизм терминдерінде программалау қолдау табу керек.
Егер жеке-жеке әрбір объект үшін интерфейсі, локал жадысының құрылымы, тәсілдері сипатталатын болса, онда программа ӛте үлкен болып кетеді. Сондықтан ОБП-ң барлық тілдерінде класстар механизмі енгізілген.
Класс деп бірдей объекттердің, яғни, бірдей интерфейске, локал жадының құрылымына(ӛрістердің бірдей жиыны), және мінез-құлыққа (жіберілген хабарламаларды ӛңдеу үшін бірдей тәсілдер қолданатын) ие объекттердің жиынын атайды.
Программа жазу кезінде программист алдымен классты сипаттайды, яғни, ішіне енетін барлық объекттердің интерфейсін, ішкі құрылымын және тәсілдерін (мінез-құлқын) сипаттайды. Бұдан соң, нақты объектті сипаттаған уақытта оның берілген классқа тиістілігін білдіреді. Және мұндай объектті берілген класстың экземпляры деп айтады. Әрбір объект қайсыбір класстың экземпляры болып табылады
Достарыңызбен бөлісу: |