Объектіге бағытталған программалау тілі


Жоспар

Кіріспе

Негізгі бөлім

  1. Абстрактілі берілгендер типі TIME - ді клас түрінде реализациалау
  2. Кластың әрекеттер облысы және клас элементтеріне қол жеткзу
  3. Интерфейстің реализациядан бөлінуі
  4. Клас элементтеріне қол жеткізушілікті басқару
  5. Қол жеткізушілік функциялары және сервистік функциялар
  6. Клас объектілерінің инициализациясы: конструкторлар
  7. Конструкторлар үнсіз келісім аргументтерімен
  8. Деструкторлар
  9. Конструкторлар мен деструкторлар қашан шақыралады?
  10. Берілгендер элементі мен функция элементтерін және қолдану
  11. Шағын қауіп: сілтемені берілгендердің жабық элементіне қайтару
  12. Үнсіз келісім бойынша элементтік көшіруді қосып алу
  13. Программалық қамсыздандырудың утилизациясы

Қорытынды

Пайдалынған әдебиеттер

Кіріспе

Ең алдымен объектіге бағытталған С тілінінің кейбір кілттік түсініктері мен терминдеріне тоқталып өтейік. Объектіге бағытталған программалау тілі пакеттегі берілгендер мен функцияларды қарастырады , олар берілгендер мен функциялардың кластары деп аталады және олар бір - бірімен тығыз байланысты.

Клас бір қарағанда сызбаға ұқсайды. Мысалы сызбаға қарап құрылысшы үй тұрғызатын болса, ал клас арқылы программалаушы объект құра алады. Бір сызбаны бірнеше рет қолдана отырып бірнеше үй тұрғызуға болатынындай, бір класпен бірнеше объект жасауға болады. Кластың мәліметтерді жасыру мүмкіндігі бар. Яғни олар бір - бірімен жақсы анықталған интерфейс арқылы өзара мәлімет алмасуды тек өздері ғана біледі, ал кластарға ереже бойынша өзара қалай байланысқанын білуге болмайды, алмасу бөліктері кластың өздерінің ішінде жасырылған. Мысалы жүргізуші машинаны оның ішкі детальдарының қалай жұмыс жасап жатқанын білмей - ақ өте жақсы жүргізе алады. Міне осыдан біз жасырын мәліметтердің жақсы программалық қамсыздандыруда қаншалықты үлкен рол айнайтынын көруімізге болады.

С тілінде және басқа да программалау тілдерінде әрекеттердің орындалуында өзіндік бірліктері болады. С программалау тілінің бірлігі функция болып табылады. Ал С++ тілінің бірлігі нәтижесінде класстың өкілдері пайда болатын объектінің даналары, яғни класс болып табылады. С тілінде программалаушылар функцияның жазылуына көп көңіл бөледі. Жалпы бір есептерді орындайтын бірнеше әрекеттер жиыны функцияларға бекітіледі, ал функциялар жиыны программаны құрайды. Берілгендер С тілінде сөзсіз маңызды орын алады, бірақ берілгендер тек әрекеттер функциясының орындалуына қолдау көрсетеді.

С++ тілінде программалаушылар өздерінің жасағанклас деп аталатын қолданушы типтерінің анықтамаларына сүйенеді. Әрбір клас берілгендер секілді осы берілгендерді өздері басқаратын функциялар жиынынан тұрады. Клас құрамына кіретін берілгендер кластың берілгендер элементі деп аталады. Кластың функциональді компоненттері оның элементті - функциялары немесе кейбір программалау тілдерінде әдістері деп аталады. Егер құрылған типтің мысалы int типінің өкілі айнымалы деп аталса, қолданушы типінің (кластың) өкілі объект деп аталады. С++ тілінде барлық назар функцияларға емес кластарға аударылады. С++ тілінің кластары С тілінің struct түсінігінің дамуы болып табылады. Struct айнымалылардың өзара қарым - қатынасының жиынтығын білдіреді, ал клас ортасында йнымалылар функциялардағы секілді басқарылады. Енді біз «Абстрактілі берілгендер типі TIME - ді клас түрінде реализациалау» бөлімін қарастырамыз. Ол бізге берілгендердің жаңа абстрактілі типінің саналы түрде сипатталуын көрсетеді.

Абстрактілі берілгендер типі TIME - ді клас түрінде реализациалау

Кластар программалаушыға өзіндік атрибуттары және атқаратын іс - әрекеттері бар объектілерді моделдеуге мүмкіндік береді. Берілгендер элементі мен элемент - функцияларды құрайтын типтер С++ тілінде class кілттік сөзімен анықталады.

Басқа да объектіге бағытталған программалау тілдерінде функция - элементтерін әдістер деп атайды және олар жіберілген объектіге хабарлама ретінде жауап беру кезінде белсенді әрекет етеді. Хабарламалар функция - элементтерінің, яғни бір объектіден келесі объектіге жіберілген кездегі шақыруға немесе функциядан объектіге жіберілетін шақырылуға сәйкес беріліп отырады

Клас анықталып болғаннан кейін оның атауын осы кластың объектілерін хабарлауға қолдануға болады. 1 - суретте TIME класының қарапайым анықталуы көрсетілген.

Біздің класымыздың анықталуы class кілттік сөзімен басталған. Кластың анықталу денесі фигуралық жақшалармен({}) қоршалған. Анықтау нүктелі үтірмен (; ) аяқталған. TIME класының қарапайым анықталуы үш бүтін элементтен тұрады: hour, minute, second.

class Time {

public:

Time() ;

void setTime(int, int, int) ;

void printMilitary() ;

void printStandard() ;

private:

int hour; // 0-23

int minute; //0-59

int second; //0-59

}; // TIME класының cоңы

1 - сурет. TIME класының қарапайым анықталуы

public: және private: белгілері элементке қол жеткізуші спецификаторлар деп аталады. public: спецификаторынан кейінгі жарияланған берілгендер мен функциялардың барлық элементтері программаның TIME класының қандай да бір объектісіне барлық жерде ашық болып саналады. private: спецификаторынан кейінгі жарияланған берілгендер мен функциялардың барлық элементтері кластың элемент функцияларына ғана ашық болып саналады. Клас элементтеріне қол жеткізуші спецификаторлар әрқашан қос нүктемен (:) аяқталады және кез келген тәртіппен класты анықтау кезінде көптеп кездесіп отырды.

public: спецификаторынан кейінгі клас анықтаушылары мына 4 элемент-функциядан тұрады: Time, setTime, printStandard, printMilitary. Бұл функцияларды ашық элемент-функциялар деп атайды, сонымен қатар клас интерфейсі деп те атайды. Олар берілгендерді басқаратын клас клиенттері (яғни, қолданушы болып табылатын программаның бөліктері) деп аталады. Өзінің элемент-функцияларының ортасында өз клас клиенттеріне ұсынатын тасымалдау қызметін берілгендер класының элементі қолдап отырады. Бұл қызметтер клиенттерге клас объектілерімен қатынасуға мүмкіндік береді.

Элемент-функция дегеніміз сол кластың өзі болып табылады, оны басқаша осы кластың конструкторы деп атауға болады. Конструктор - клас объектілерінң берілгендер элементтерін инициалдайтын арнайы клас функциясы болып табылады. Клас конструкторы объектіні құру барысында автоматты түрде шақырылады.

Үш бүтін санды элементтер private: спецификаторының арқасында пайда болады. Бұл деген сөз берілгендер элементтері тек қана функция элементтеріне ғана ашық болып табылады. Әдетте берілгендер элементтері private бөлімінде есептелінеді, ал элемент функциялары public бөлімінде саналады. Клас құрылып болғаннан кейін төмендегі секілді объектілерді, массивтерді, нұсқауыштарды жариялаушы тип ретінде қолданылады:

Time sunset, // TIME типінің объектісі

arrayofTimes[5, // TIME типі объектісінің массивтері

*poiterToTime, // TIME типі объектісіне нұсқауыш

&dinnertime = sunset; // TIME типі объектісіне сілтеме

Кластың атауы жаңа тип спецификаторы болып саналады. іnt типті бірнеше айнымалылардан тұратын кластың бірнеше объектілері болуы мүмкін. Программалаушы өзіне қажетті деңгейде жаңа класты типтер құруын болады. Бұл С++ тілінің кеңейтілген тіл деп аталуына бірден бір себеп болып табылады. 2-суреттегі программада TIME класы қолданылған. Программа t деп аталатын TIME класының объектісінен тұрады. Объекті құру барысында 0 мәнімен берілген әрбір жабық элементтерді инициалдайтын TIME конструкоры автоматты түрде шақырылады. Содан кейін берілгендер элементтері дұрыс инициалданғанын дәлелдейтін әскери (24 сағатты) және стандартты (12 сағатты) форматта берілген уақыт шығады. setTime элемент-функциясы көмегімен уақыт орнатылады, ол да жоғрыда аталған екі форматта орнатылады. Кейіннен setTime мәні жоқ берілгендер элементін өзіндік етуге тырысады және оларды да екі форматта экранға шығарады.

#include <iostream>

using std::cout;

using std::endl;

class Time {

public:

Time() ;

void setTime(int, int, int) ;

void printMilitary() ;

void printStandard() ;

private:

int hour;

int minute;

int second;

};

Time::Time() { hour=minute=second=0; }

void Time::setTime(int h, int m, int s)

{

hour=(h>=0 && h<24) ? h:0;

minute=(m>=0 && m<60) ? m:0;

second=(s>=0 && s<60) ? s:0;

}

void Time::printMilitary()

{

cout<< (hour<10 ? "0":"") << hour <<":"

<< (minute<10 ? "0":"") <<minute;

}

void Time::printStandard()

{

cout<<((hour==10 hour==12) ? 12: hour%12)

<<":"<(minute<10 ? "0":"") <<minute

<<":"<(second<10 ? "0":"") <<second

<<(hour<12 ? "AM":"PM") ;

}

int main()

{

Time t;

cout<<"The initial militarity time is";

t. printMilitary() ;

cout<<"\nThe initial standard time is";

t. printStandard() ;

t. setTime(13, 27, 6) ;

cout<<"\nStandard time ater setTime is";

t. printMilitary() ;

cout<<"\nStandard time ater setTime is";

t. printStandard() ;

t. setTime(99, 99, 99) ;

cout<<"\n\nAfter attempting invalid settings:"

<<"\nMilitary time:";

t. printMilitary() ;

cout<<"\nStandard time:";

t. printStandard() ;

cout<<endl;

return 0;

}

2-сурет. Абстрактілі берілгендер типі TIME - ді клас түрінде реализациалау

Мұнда берілгендер элементтері hour, minute, second -қа қол жеткізу private спецификаторы нәтижесінде болып жатқанына көңіл аударуымыз керек. Берілгендер класының жабық элементтері бұл кластың сыртында байланыс болмайды. оның мәні берілгендердің клас ішіндегі нақты мәні олардың клиенттерін қызықтырмау керек екенінде болып табылады. Мысалы, клас уақытты секунд саны ретінде де «беруіне» болатын еді. Ал клиенттер бұл туралы ешнәрсе де білмей, сондай public- функцияларды пайдаланып, тура сол сияқты нәтиже ала берген болар еді. Міне осындай мағынада кластың реализациясы оның клиенттерінен жасырын болуы керектігі айтылады.

Берілген программада TIME конструкторы 0-мен берілген элементтерді инициалдайды.

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Java программалау тілі
Полиморфизм - бір иерархиядағы объектілер үшін бір атаумен берілген әдістерді қолдану мүмкіндігі
Объектіге бағытталған программалаудың принциптері
Адамзат дамуының жаңа кезеңі
Мамандардың мәліметті өңдеудің машиналық құралдарына максималды жақындығы
Delphi бағдарламасын қолданып мәтіндік редакторын құру және онымен жұмыс істеу мүмкіндіктерін көрсететін бағдарлама құру
Java кең таралған программалау тілі
Delphi объектілі бағдарлы бағдарламалау тілінің мүмкіндіктері
Информатиканы тереңдетіп оқытатын сыныптарда информатика сабағын өткізу әдістемесі
Программалау тілдерімен танысу
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz