7
1 Дәріс №1. Объектіге бағытталған программалау технологиясы.
С++ тілі
Дәрістің мақсаты:
объектіге бағытталған программалау технологиясы
түсініктерімен таныстыру.
Дәрістің мазмұны:
класс ұғымы және оның элементтері. С++ тілі
ортасының артықшылықтары.
Программалаушылар көптеген жылдар бойы бизнесті жүргізу
әдістерін
автоматтандыратын программалаларды жазып үлкен жұмыс атқарды.
Бизнесте программалар – бизнес операцияларына қызмет етуі талап етеді.
Программалаушыларға көмекке қайта пайдаланылатын кодтар (reusable code)
есебінен, жұмысты жеңілдететін процедуралық программалау келді.
Процедуралық программалау программалар жазуда үлкен өзгеріс болды, бірақ
объектіге бағытталған әлемді қайта құру мәселесі шешілмеген күйінде қалды.
Бұл мәселе 1980 жылы объектіге бағытталған программалаудың (ОБП) пайда
болуымен шешілді. Нақты әлемнің объектілеріне еліктеуді C++ немесе Java
сияқты объектіге бағытталған программалау тілдерінде кластарды анықтау
арқылы жүзеге асыруға болады. Класс деректер мүшелері мен әдістер
мүшелерінен тұрады. Деректер мүшелері (
data members
) кейде өрістер (
fields
)
деп аталады және объект атрибуттарын сақтау үшін пайдаланылады. Әдістер
мүшелері (
member methods
) кейде функциялық мүшелер (
member functions
)
деп аталады және объектінің жәй-күйін анықтайды. Қазіргі уақытқа сай
алдыңғы қатарлы C ++ және Java объектіге
бағытталған программалау
тілдерімен процедуралық тілдердің арасындағы негізгі айырмашылық,
біріншісінде мұраға, инкапсуляция, полиморфизм сияқты т.б. объектіге
бағытталған тұжырымдамаларды пайдалануға арналған синтаксисі бар
екенінде.
C++ тілінің стандартты кітапханаларында көп мөлшерде жазылған
төменгі деңгейлі коды бар, бірақ негізінен бұл стек және кезек сияқты төмен
деңгейлі деректер құрылымдардың жинақтарын пайдалану үшін бейімделген.
Деректер қорымен, суреттермен, интернетпен жұмыс істеу сияқты қарапайым
программалау есептері C++
тілінің өзінде емес, операциялық жүйелердің
қосымша кітапханалары түрінде іске асырылған.
C++ тілі пайдалануға қарапайымдылығына байланысты өнімділігі
жоғары тіл ретінде белгілі C тіліне негізделген. C++ - бұл компиляциялайтын
тіл. Бұл, бастапқы кодты жазғанда, ол анықтаған платформа үшін
орындалатындай етіп, оны компиляциядан және компоновкадан өткізіп, басқа
платформада орындалуы үшін қайта компиляция жасауды білдіреді.
Қолданушы интерфейсі әртүрлі платформаларда ерекшеленетіндіктен,
қосымшаны C++-ке көшіру - программаны бір операциялық жүйеден
басқасына көшіру барысындағы басты мәселе. C++ ешқандай қауіпсіздікті
қамтамасыз етпейді. C++ тілінде программа жадының кез келген бөлігіне
және кез келген ресурстарға қол жеткізе алады.
8
C++
қоқыс жинауды қолдамайды, яғни оның мүмкіндігі Java тіліндегі
сияқты ресурстарды (жады) автоматты түрде тазалайды. C++ тілінде жады
блогын бөле отырып, сіз оның босауына жауап бересіз. C++ тілі енгізу-
шығару консолінен басқа ешқандай қолданушы интерфейсінің элементтерін
ұсынбайды. Ол мұнда Windows жүйесіндегі
сияқты ешқандай графикалық
пайдаланушы интерфейсін қолдаудың жоғын білдіреді. Windows ортасының
өзінің С++ те пайдалануға болатын жеке программалық интерфейсі бар
(
application programming interface
, API). C ++ тілі көпжақты мұрагерлік
қолдау көрсетеді, ол дегеніміз бір кластың бір
мезгілде бірнеше базалық
кластары болуы мүмкін дегенді білдіреді.
C++ шаблондар (
templates
) аталымды механизмін ұсынады. Шаблондар
печенье пісіретін формалар сияқты кластар мен функцияларды анықтау
барысында, жаңа кластар мен функцияларды құру үшін қолданылады.
C++ тілінің түйінді сөздері программа объектілерінің жады
кластарымен,
типтердің
аттарымен,
көріну
спецификациясымен,
модификаторлармен және операторлармен байланысты. C++ тілі
операциясының белгілері өрнектерді қалыптастыру және әрі қарай есептеуді
қамтамасыз етеді. Мәнді алу үшін өрнек қағида болады. Операцияның бір
белгісі әртүрлі өрнектерде қолданылу мүмкін және контекстке байланысты
әртүрлі интерпретациялануы мүмкін. Әрине,
барлық операциялардың өз
рангісі болып, приоритеттер иерархиясын құрап, ассоциативтік (оңнан солға
немесе солдан оңға) ережеге бағынады.
C++ тілінің операторлары мен функциялары өз кезегінде классикалық
алгоритмдік тілдердің құрылысын мұра еткен C тілімен толықтай дерлік
сәйкес келіп, шамалы жетілдірілген. Операторлар әдеттегідей іс-әрекеттерді
және осы іс-әрекеттердің программада орындалу логикасын (ретін)
анықтайды. C++ тілінде әртүрлі функциялардың атауы бірдей болуы мүмкін.
Бұл жағдайда әртүрлі функциялар ретінде бір-бірінен формальді параметрлер
санымен немесе типімен ерекшеленетін функцияларды түсінеміз.
Тек қана
кері қайтарылатын мәннің типі бойынша айырмашылықтар рұқсат етілмейді.
Inline
модификаторы бар функциялар алмастыру функциялары деп аталады.
Ереже бойынша, бұл барлық жұмысы жалғыз оператормен атқарылатын және
оның көмегімен программада бірнеше рет қолданылатын кодты жүзеге
асыратын функциялар.
C++ тілінде бар және С тілінде жоқ кейбір мүмкіндіктерді
қарастырайық:
- С++ тілінде комментарияларды - // белгісі арқылы енгізуге болады;
- С++ тілінде енгізу-шығарудың қосымша жабдықтары бар;
- функцияны қайта жүктеу - бірнеше функциялар үшін бірдей атауларды
пайдалану. Бір функцияға кейде әр типті объектілермен ұқсас әрекеттерді
орындау талап етіледі;
-программада динамикалық жады облысын таңдап және жоюға
мүмкіндік беретін
new
және
delete
операциялары;
-көріну аймағын кеңейту операциясы.
9
Кластар және оның әдістері (ОБП түйінді ұғымдары):
- конструкторлар мен деструкторлар кластар объектілерін құратын және
жоятын арнайы әдістер болып табылады;
- кластың мүшесі болмайтын, бірақ ондағы сипатталған айнымалылар
мен әдістерге қол жеткізуге мүмкіндігі бар достық функциялары;
- қайта жүктеу операциялары – тек стандартты типтегі деректерге ғана
емес, әртүрлі кластардың объектілеріне де қолдануға мүмкіндік беретін тілдің
көптеген негізі операцияларының мағынасын өзгерту мүмкіндігі;
- туынды кластар. Осы класс объектiлерi
барлық ашық айнымалылар
мен түбірлік (родительский) класс әдістерін мұра етеді, бірақ оған қоса өзінің
жеке айнымалылары мен әдістері болуы мүмкін.
- полиморфизм - виртуалды функциялар жабдықтары арқылы жүзеге
асырылады;
- хабарламалар көмегімен объектілерді басқаруға болады. Объектіге
хабарламаны жіберу функцияны шақыруды еске түсіреді.
Бақылау сұрақтары:
1)
Компьютерлік жүйелерді құру барысында объектіге бағытталған
программалауды қолдану неліктен маңызды?
2)
Мұралықтың
объектіге
бағытталған
программадағы
орнын
түсіндіріңіз.
3)
ОБП күрделі компьютерлік жүйелерді қандай жолмен қолдауға көмек
береді?
4)
Адам объектісінен мұра етілетін Университет объектілерін
сипаттаңыз.
Достарыңызбен бөлісу: