Класс мүшелерінің атқаратын қызметі

Автор работы: Пользователь скрыл имя, 08 Декабря 2014 в 09:08, курсовая работа

Описание работы

Си++ тілі обьектілі-бағдарланған бағдарламалау тілі болып табылады. Бағдарламалық обьектілерді пайдалану идеясы әр түрлі зерттеушілердің тарапынан көптеген жылдар бойы дамытылып келеді.Сондай типтегі алғашқы тілдердің бірі Симула-67 болып табылады. 1972 жылы Алан Кей жасаған Смолток (Smalltalk) тілінде де обьектілі-бағдарланған бағдарламалау өз статусын бекітті.

Содержание работы

Кіріспе ..................................................................................................................... 3

1 Класты сипаттау ................................................................................................ 6
Класс өрістері мен әдістері ........................................................................... 8
Класс мүшелері .............................................................................................. 13

2 Класс мүшелерінің атқаратын қызметі ...........................................................14
2.1 Класс мүшесінің атын көрсету.......................................................................16

Қорытынды .......................................................................................................... 19
Қолданылған әдебиеттер .................................................................................... 21

Файлы: 1 файл

c__kursovaya.docx

— 42.38 Кб (Скачать файл)

 

Мысалы:  rectangle деп аталатын класты анықтау

class rectangle // кластың аты

{

private:

double length; // ұзындығы жабық элемент

double width; // ені жабық элемент

public:

rectangle() // конструктор үнсіздік бойынша

{assign(0,0);}

rectangle (double Len, double Wide) //конструктор

{assign(Len,Wide);}

double Length()  // функция -элемент

{return length;}

double Width()  // функция -элемент

{return width;}

double Area()   // // функция -элемент

{return length*width;}

void assign(double Len, double Wide); // // функция -элемент

};

 

    Мұндағы,  private, protected, public бӛлімдері  класс құрамындағы элементтерді  пайдаланудың ережелерін немесе  приоритеттерін анықтайды. Ол бӛлімдердің  әрқайсысының қызметі бар. Класстың   функция-элементтері дегеніміз, бұл  – бірнеше операторлардан тұратын, класстан тыс анықталатын функциялар. Бұл функциялар сол класс анықталған файлда болуы да мүмкін, бұл функция мен оның прототипінің берілуі сияқты болып келеді. Әдетте, функция-элементтер ӛз алдына бӛлек *.h  немесе  *.сpp    файлдарда жинақталады және оны анықтағанда әуелі оның класының атын жазып, сонан соң  «::» /екі рет қос нүкте/ белгісін қойып,  сонан соң барып функцияның аты жазылады.

Мысалы:

class rectangle // кластың аты

{

private:

...   ...   ...

public:

...   ...   ...

void assign(double Len, double Wide); //  функция -элемент

}; // классты анықтау бітті

void  rectangle :: assign(double Len, double Wide)

// функция-элементтің  ӛзінің анықталуы

{ length=Len;

width=Wide;

        Кластың әдістерін алуды реттеп отыруға болады. Оның бірі туынды кластарды анықтау барысында. Осы уақытқа дейін туынды класты public сөзінің көмегімен алдық. Яғни туынды кластың объектілері базаық кластың public бөлігіндегі берілгендерді көре алады. Енді private сөзінің көмегімен де туынды кластарды анықтауға болады. Бұл жағдайда туынды кластың объектілері, базалық кластың public бөлігіндегі берілгендерді ала алмайды. Туынды кластар жалпы қылықтарды мұрагерлене  базалық кластың  кейбір функция –мүшесін қайта анықтап, бірнеше өзгерту енгізе алады, немесе жаңа дерек  –мүше мен функция-мүше енгізу арқылы толтыра алады. Күрделі программалар бірнеше біртипті объектілерді қолдануы мүмкін.

                                  

                                           Класс мүшелері

           Класс объектісі құрылғаннан кейін  ”нүкте”  операциясын қолданып,  класты ашық мүшелеріне өтуге болады. Кейбір объектті құрғанда, оны инициалдау керек. Бұл мақсат ұшін  С++ конструктор деп аталатын    фнкция-мүше береді.  Класс конструкторы оның класының объектісі құрылған сайын шақырылады.  Конструктор мүшесі болып келетін кластың аты қандай болса, оның да аты сондай және ол қайтарылмалы мәнге иеленбеген. Класс деструкторы объектті жою кезінде шақырылады.  Ол глобальды объекттерге программа    аяқталған кезде шақырылады,  ал локальдылар үшін –  ол көріну облысынан шыққанда. Конструктор мен деструкторларға көрсеткіштер алу мүмкін емес.Класс мүшелері statik модификаторымен хабарлануы мүмкін. Кластың статистикалықмүшесі класс облысының шегіне ғана    кіру мүмкіндігі бар функция немесе глобальды айнымалы сияқты қарастырыла алады.   Statik  модификаторымен анықталған кластың дерек-мүшесі осы кластың барлық көрсетушілерімен бөлінеді,  себебі шын мәнініде бұл айнымалының тек бір ғана данасы бар. Шын мәнінде, статистикалық деректер-мүшелер жады кластың ешбір көрсетушілері болмаса да бөлінеді.Сондықтан статистикалық деректер-мүшелерді хабарлап қана қоймай,   оларды анықтауы керек.   Статистикалық деректер-мүшелеріне қарапайым  функция-мүше көмегімен кіру мүмкіндігінен еш айырмашылығы жоқ,  бірақ ол үшін берілген кластың кем дегенде бір объектісін құру керек. С++  тілі класқа бір немесе бірнеше басқа кластардың дерек-мүше мен функция  – мүше    мұрагерленуіне мүмкіндік береді.  Бұдан жаңа класты туынды класс деп атайды.Элементтері мұрагерленетін класты өзінің туынды класы үшін арналған базалық класс депатайды.  Мұрагерлік кластардың кейбір жалпы қылықтарын    бір базалық класқа абстрактауға мүмкіндік береді. Туынды кластар жалпы қылықтарды мұрагерлене  базалық кластың  кейбір функция –мүшесін қайта анықтап, бірнеше өзгерту енгізе алады, немесе жаңа дерек  –мүше мен функция-мүше енгізу арқылы толтыра алады.

                                Класс мүшелерінің атқаратын қызметі.

 

           Кез-келген объект белгілі бір кластың өкілі, бір данасы немесе айнымалысы  болып есептеледі. Кластың құрамына  өрістер, әдістер және қасиеттер кіреді.Тума кластар өздерінде  түпкі кластың барлық өрістерін сақтап калады және оны өзгерте алмайды, алып тастауға да болмайды, тек жаңа әрістермен толықтыруға болады.  Класс біртипті объектілерге арналған шаблон және объектілі айнымалылар типтері мен әдістерін анықтайтын информациялардан тұрады. Класстар жүйесі қазіргі программалау тілдерінде маңызды рөл атқарады. Объектілердің өзара байланысуына хабарлар қолданылады және үш бөлімнен тұрады: объект идентификаторы, ағымдағы объектіде қолданылатын әдіс аттары және таңдалған әдіс режимін қалпына келтіретін қосымша информациялар. Күрделі программалар бірнеше біртипті объектілерді қолдануы мүмкін. Бұл жағдайда әр объект үшін әдістер мен айнымалылар туралы информацияны жазу тиімсіз. Бұл мақсатқа объектілер класы деген түсінік енгізілген. Барлық тілдерде стандартты типтер бар, мысалы int.Класстар жүйесі қазіргі программалау тілдерінде маңызды рөл атқарады. Объектілердің өзара байланысуына хабарлар қолданылады және үш бөлімнен тұрады: объект идентификаторы, ағымдағы объектіде қолданылатын әдіс аттары және таңдалған әдіс режимін қалпына келтіретін қосымша информациялар. Класстар жүйесі қазіргі программалау тілдерінде маңызды рөл атқарады. Объектілердің өзара байланысуына хабарлар қолданылады және үш бөлімнен тұрады: объект идентификаторы, ағымдағы объектіде қолданылатын әдіс аттары және таңдалған әдіс режимін қалпына келтіретін қосымша информациялар. Күрделі программалар бірнеше біртипті объектілерді қолдануы мүмкін. Бұл жағдайда әр объект үшін әдістер мен айнымалылар туралы информацияны жазу тиімсіз. Бұл мақсатқа объектілер класы деген түсінік енгізілген. Барлық тілдерде стандартты типтер бар, мысалы int.Кластар объектілер қандай берілгендер мен функциялардан тұратындығын анықтайтын форма болып табылады. Класты жариялау барысында ешқандай объект құрылмайды, мысалы int типі int айнымалының бар екендігін білдермейтін сияқты. Яғни класс өзара ұқсас объектілер жиынтығын сипаттау үшін қажет ұғым.Класқа тиісті объекті кластың экземпляры деп аталады.

            Класс қолданушы анықтайтын  мәліметтердің абстарктілі типі болып табылады,ол мәліметтер және олармен жұмыс істеуге арналған функциялар түрінде берілген шынайы обьектінің үлгісін бейнелейді және берілгендер мен оларға қолданылатын әрекеттерден тұрады. Инкапсуляция, қабылдаушылық және полиморфизм принциптеріне сәйкес анықталатын  объектілерді программада сипаттау және қолдану үшін    класс деп аталатын жаңа құрылымдық тип қарастырылады. Кез-келген объект белгілі бір кластың өкілі, бір данасы немесе айнымалысы  болып есептеледі. Кластың құрамына  өрістер, әдістер және қасиеттер кіреді.Тума кластар өздерінде  түпкі кластың барлық өрістерін сақтап калады және оны өзгерте алмайды, алып тастауға да болмайды, тек жаңа әрістермен толықтыруға болады.  Класс біртипті объектілерге арналған шаблон және объектілі айнымалылар типтері мен әдістерін анықтайтын информациялардан тұрады.Программаның құрамындағы көптеген элементтер (мысалы, терезелер, мәзірлер, батырмалар және т.б.), программаға тұтастай қойылатын және программистің басқаруына ыңғайланған белгілі бір объектілер ретінде қарастырылады. Бұл объектілердің инкапсуляция, қабылдаушылық және полиморфизм принциптеріне негізделген ерекше қасиеттері, әдістері және әрекеттері болады. Объектіге бағдарланған программалаудың негізін құрайтын да осы   инкапсуляция, қабылдаушылық және полиморфизм принциптері.      

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

                                  Класс мүшесінің атын көрсету.

           Әрбір класс құрамында атауы  класс атауымен бірдей  болып  келетін кем дегенде бір әдіс  болады. Ол конструктор деп аталады  және класс обьектісін  құру  кезінде автоматты шақырылады.Кластың немесе объектінің әдістерін осы класқа енетін,  процедуралар мен функциялар құрайды. Олар кәдімгі процедуралар мен функциялар сияқты жазылады. Кластың әдістерінің немесе процедура мен функциялардың тақырыбы /мысалы, procedure Button1Click (Sender: TObject);/ программа модулінің interfase - секциясындағы класты сипаттау бөлімінде жазылады да, ал денесі әдістің қайсы класқа тиесілі екендігін көрсететін құрама атпен /мысалы, TForm1.Button1Click(Sender: TObject);/ implementation – секцияда жазылады.С++ -те кез-келген класс үшін анықталған, кластың жаңа данасын құратын конструктор және құрылған дананы жоятын деструктор деп аталатын екі әдіс қарастырылған. TОbject класы және одан тарайтын тума кластардың басым бөлігі үшін бұл әдістер сәйкесінше Create және Destroy деп аталады.

             Класс ішінде класс әдісінің анықталуы міндетті емес.Класс анықтамасының ішінде тек add_dist ( ) функциясының прототипі бар.Функияның анықтамасы листингтің басқа жерінде болса да, ол класс әдісі болып табылады. add_dist ( ) функциясы Distance класынан кейін анықталады. add_dist ( ) функциясының есімі анықталарда Distance класының есімі және : : символы тұрады. Бұл белгі кең ауқымды келісім операциясының белгісі болып табылады. Объектілерді функцияға берілу синтаксисі жай айнымалыларды беру синтаксисімен бірдей.Бірақ мынадай маңызды бөліктері бар:

            Класс әдісіне әруақытта класс өрістерін қолдануға мүмкіндік бар (объект (.) операциясы арқылы әдіспен байланысады).Класс әдісін басқа да объектілер қолдана алады. Олар оның аргументі түрінде қарастырылады.

 

      Мысалы  c++ тілінде статикалық класс мүшесі болады.Бүл класс мүшесін ststic кілттік сөзі арқылы тануға болады.Оның жазылу форматы мына түрде болады: класс_аты::статикалық_класс_мүшесінің_аты.

Мысал келтіретін болсақ:

 

class object {  
     char *str;  
     public:  
     static int num_obj;  
     object ( char *s){ // Конструктор.  
     str = new char [strlen (s) + 1];  
     strcpy ( str, s );  
     cout <<"Құру " << str <<'\n'; num_obj ++ ;  
     }  
     ~ object ( ){  
     cout <<"Жою " << str << '\n';  
     delete str;  
     num_obj - -;  
     }  
     };  
     int object::num_obj = 0; // Инициализация. Ол жайлы int кілттік сөзі айтып тұр!  
     object s1 ("бірінші глобалды обьект.",  
      s2 ("екінші глобалды обьект.");

void f ( char *str ) {  
     object s ( str );  
     cout <<"Обьект саны - " << object::num_object<<".\n";  
     cout <<" функция f()" <<".\n";}

void main ( ) {  
     cout <<"Әзірше обьект саны - " <<<="" ".\n";=""  
     object m ("объект в main ( ).");  
     cout <<"Ал қазір обьект саны - " << m.num_obj <<".\n";  
     f ("желілік обьект.");  
     f ("басқа желілік обьект.");  
     cout <<" main ()білуі бойынша объектов - " <<s1.num_obj<<".\n";  
     }</s1.num_obj<<".\n";>

 

 

     Нәтижесінде қара экранға статикалық класс арқылы құрылған бағдарлама шығады.Бұл бағдарламаның мақсаты желілік обьектілерінің құрылу жолын зерттеп, баұылап отыру.

Бірінші глобалды обьект құрылуда

Екінші глобалды обьект құрылуда

Әзірше обьект саны

Main да обьект құрылу үстінде

Қазір обьект саны 3

Желілік обьект құрылу үстінде

Қазір обьект саны 4

 

 

 

 

 

 

 

 

 

 

 

                                 

 

 

                                           Қорытынды.

 

           Класс  әдісінің әрбір шақырылуы осы  кластың белгілі бір объектісімен  байланысты (статикалық функцияны  шақырудан басқа). Әдіс объектінің  кез келген, ашық және жабық  мүшелерін есімі арқылы тікелей  ала алады. Сонымен қатар әдіс  нүкте операциясы арқылы өз  класының басқа объектілерінің  мүшелерін де ала алады, олар  әдіс аргументі ретінде қаралады.add_dist ( ) функциясы мәндерді қайтармайды. Кластың ішінде,қолданылады (жабық)Кластан тыс (ашық)қолданылады Класс құрамына кіретін функциялар класс әдістері болып табылады.Класс ішіндегі берілгендер мүшелер немесе класс өрістері деп аталады.

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

            Сәйкес кластың объектісін құру үшін деректер типінің спецификаторы ретінде кластың атын қолдану керек. Объектілердің өзара байланысуына хабарлар қолданылады және үш бөлімнен тұрады: объект идентификаторы, ағымдағы объектіде қолданылатын әдіс аттары және таңдалған әдіс режимін қалпына келтіретін қосымша информациялар. Күрделі программалар бірнеше біртипті объектілерді қолдануы мүмкін. Бұл жағдайда әр объект үшін әдістер мен айнымалылар туралы информацияны жазу тиімсіз. Бұл мақсатқа объектілер класы деген түсінік енгізілген. Кластың әдістерінің немесе процедура мен функциялардың тақырыбы /мысалы, procedure Button1Click (Sender: TObject);/ программа модулінің interfase - секциясындағы класты сипаттау бөлімінде жазылады да, ал денесі әдістің қайсы класқа тиесілі екендігін көрсететін құрама атпен /мысалы, TForm1.Button1Click(Sender: TObject);/ implementation – секцияда жазылады.

        Құрылым  сияқты, класс денесі фигуралық  жақшаға алынып, «нүктелі үтір»  белгісімен аяқталады.ОБП –дың  негізгі ерекшелігі берілгендерді  жасыра алуы.Бұл терминнің мағынасы  мынада: берілгендер класс ішінде  орналасқан және кластан тыс  орналасқан функциялардың санкциясыз  қолданылуынан қорғалған.Егер кейбір  берілгендерді қорғау керек болса, онда оларды private қызметші сөзі  бар класс бөлігінде орналастыру  керек.

Информация о работе Класс мүшелерінің атқаратын қызметі