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

        

 

 

Мазмұны.

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

 

1 Класты сипаттау ................................................................................................  6

    1. Класс өрістері мен әдістері ...........................................................................  8
    2. Класс мүшелері .............................................................................................. 13

 

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

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

 

Қорытынды .......................................................................................................... 19

Қолданылған әдебиеттер .................................................................................... 21 
                                    Кіріспе.

                Си++ Си тiлiнiң кеңейтiлген түрi. Оны 1980 жылдың басында Бъерн Строустроп Bell Laboratories-сында өңдеп шығарған. Си++ тiлi Си тiлiнiң бiрқатар қасиеттерiн  реттеудi қамтамасыз етедi және ең  маңыздысы объектi-бағдарланған  бағдарламалық мүмкiндiгiн қамтамасыз  етедi. Бұл бағдарламамен қамтамасыздандыру  әлемiндегi революциялық идея болып  табылады.

               Басқада бағдарламалық тiлдер  көптеген қажеттi эффект бере  алмағандықтан, Си++ алғашқыда ең  жоғарғы деңгейдегi нақтылы оқиғалар  үлгiлерiн өңдеу мақсаты үшiн  құрылған тiл болды. Си++ тiлiн құруда  Си тiлiнiң сәйкестiгiн сақтап  қалуға ерекше көңiл бөлiндi. Си++ тiлiнiң көмегiмен кең көлемдi бағдарламалық  проектiлер құруға болады. Си++ тiлiнiң  арқасында берiлген мәлiметтер  типтерiне бақылауды күшейтуге  және көптеген қосымша эффектiлердi жеңе алатын болдық.

     Си++ тілі обьектілі-бағдарланған бағдарламалау тілі болып табылады. Бағдарламалық обьектілерді пайдалану идеясы әр түрлі зерттеушілердің  тарапынан көптеген жылдар бойы дамытылып келеді.Сондай типтегі алғашқы тілдердің бірі Симула-67 болып табылады. 1972 жылы Алан Кей жасаған Смолток (Smalltalk) тілінде де обьектілі-бағдарланған бағдарламалау өз статусын бекітті.Си++ тілінде осындай өңдеу ережелерінің қызметін функция атқарады, яғни мұнда обьект осы мәліметтерді өңдейтін деректер мен фукцияларды біріктіреді Обьектілі-бағдарланған тіл әрқайсысы бірінен-бірі өз қасиеттері және басқа обьектілермен қатынас жасау тәсілдері бойынша ажыратылатын тәуелсіз обьектілер түріндегі бағдарламалық орта жасайды. Мұнда әрбір обьект былайша алғанда компьютерге ұқсас әрекет жасайды: ол басқа обьектілерден хабарлама ала алады және өзі де хабарлама жөнелтіп, ақпаратты еске сақтап және оларды тиісті дәрежеде өңдей алады. Бағдарламалаушы обьектілер арасындағы хабар алмасу құрылымын сипаттай отырып, бағдарламаны жасайтын амалдар жиынтығын  құрайды. Обьектілерді олардың жұмыс істеу тетігін түсінбестен есептер шығаруға, яғни оларды «қара жәшік» ретінде пайдалануға болады.

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

Си++ тілінде класс ұғымы оның басты ұғымы болып есептеледі.

         Жалпы класс деп,class, struct және union түйінді сөздерінің көмегімен анықталатын мәліметтердің кезкелген құрылымына жататын бағдарламалаушы анықтайтын типті айтады.  Класты анықтау арқылы Си++ тілінің мүмкіндігі кеңейетін болады.Класс анықталған бойда осы кластың әрқайсысының класының ішінде анықталған мүшелері бар обьектілерін құруға болады.

        Кластың бір мысалы – экрандағы графикалық нүкте. Оның мәлімет-мүшелеріне нүктенің координаттары мен түсі жатады. Оның функция-мүшелері нүктені нақтылауға, оның түсін анықтауға және жаңа түсті беруге мүмкіндік жасайды.   

Жалпы, жобалаудағы обьектілі-бағдарлау тәсілі ұстанымын кәдімгі бағдарламалау тілінде де, мыс, Си тілінде қолдануға болады. Алайда оны обьектілі-бағдарланған Си++ тілінде пайдалану жұмысты әлдеқайда жеңілдетуге мүмкіндік береді. 

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

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

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

                                           Класты сипаттау.

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

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

 

      class <класс аты>

{//кластың  жабылған фуекция-мүше және дерек -мүшесі

public:

//кластың  ашылған фуекция-мүше және дерек -мүшесі

 } 

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

AnyClass ob1, оb2;

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

                                            Класс өрістері мен әдістері.

        Класс өрістері:

~осы класс  типінен басқа кез келген типті  қабылдай алады( алайда осы класқа  нұсқауыш немесе сілтемелер болуы  да мүмкін).

~ const модификаторы  көмегімен сипатталуы мүмкін, мұндайда  олар тек бір рет қана инициалданады ( конструктор арқылы) және өзгеруі  мүмкін емес.

~static модификаторының  көмегімен сипатталуы мүмкін

Мысал ретінде компьютерлік ойын кейіпкерін модельдейтін класс құрайық.Бұл үшін оның қасиеттері мен тәртіптерін беруіміз керек.

Class monstr

{ int health , ammo;

Public:

Monstr ( in the=100, int am=10){helth =he;

Amo=am;}

Void draw (int x, int y,int scale,int position);

Int get_health() { return health;}

Int get_amo() {return amo;}

};

     Мұндай өрістерді әдістер арқылы пайдалану қолдан жасалған күрделілік болып көрінеді, алайда шынайы кластардың өрістері ретінде күрделі динамикалық құрылымдар алынуы мүмкін және олардың элементтерінің мәндеріне қол жеткізу оңай емес екенін ескеру  керек.Кластың барлық әдістері жасырын өрістерді тікелей пайдалана алады, басқаша айтқанда , класс функцияларының тұлғалары класс элементтерінің private көріну аймғына кіреді.  Өрісті жариялау кластың ішінде жүргізіледі, ал оны анықтау кластың сыртында орындалады.Статикалық өрістермен жұмыс істеу барысында компилятор тани алмайтын оңай қателіктер жіберуге болады. Егер стаикалық өріс класта жарияланып, бірақ анықталмаса компилятор ескерту хабарламасын бермейді. Байланыстырушы редакторы бұл қатені анықтағанша программа қатесіз деп есептелінеді. Байланыстырушы редактор «анықталмаған кең ауқымды айнымалыны қолдануға ұмтылу» деген хабарламаны шығарады.

       Класты құру кезінде класс әдісі құрылады және бір-ақ рет компьютер жадысына орналастырылады. Әрбір объектінің өз мәндер жинағы бодады, объектілер өрістері жалпы боламуы керек. Объектілерді құруда әрбір берілгендер жинағы жадыдан белгілі бір бос орын алады. 

Объект 1 Объект 2 Объект3

data1 data1 data1

data2 data2 data2

function1

function2

        Класс мәліметтері өрістер, ал  класс функциялары әдістер деп  аталады.Өрістер мен әдістерді  класс элементтері деп атайды.

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

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

Мысалы:

// smallobj. сpp 
# include 
class smallobj 
{   private: 
int somedata; 
public: 
void setdata (int d) 
{somedata = d;} 
void showdata ( ) 
{ cout << “ өрістің мәні = “ << somedata << endl;} 
}; 
int main ( ) 
{ smallobj s1,s2; 
s1. setdata (1066); 
s2. setdata (1776); 
s1. showdata ( ); 
s2. showdata ( ); 
return 0;    } 
         setdata( ) и showdata( ) функциялары класс ішінде анықталған, яғни функция коды класс анықтамасында орналасқан. Осындай түрде анықталған класс әдісі кірістірілген анықтама болып табылады.main ( ) функциясында s1,s2 екі объектісі анықталған.Объектіні анықтау объектіні сақтауға қажетті жады бөлу болып табылады.Объект есімін класс әдісімен байланыстыру үшіннүкте (.) операциясын қолданады.Нүкте операциясы класс мүшесін алу операциясы деп аталады.

 

Мысалы:  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 қызметші сөзі  бар класс бөлігінде орналастыру  керек.

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