Объектілер мен класстар
РЕФЕРАТ
Объектілер мен класстар
орындаған: ЖАППАР ДАНИЯР
группа:ПИ 20-03
Объектілер және кластар
Айнымалы өз типіне қандай қатынаста болса, объект те өз класына сондай қатынаста.Класс анықтамасы class қызметші сөзінен басталып, класс есімі жазылады.Құрылым сияқты, класс денесі фигуралық жақшаға алынып, "нүктелі үтір белгіс мен аяқтақтады.ОБП негізгі ерекшелігі берілгендерді жасыра алуы. Бұл терминнің мағынасы мынада: берілгендер класс ішінде орналасқан және кластан тыс орналасқан функциялардың санкциясыз қолданылуынан қорғалған.Егер кейбір берілгендерді қорғау керек болса, онда оларды private қызметші сөзі бар класс бөлігінде орналастыру керек. Мұндай берілгендер тек класс ішінде ғана қолданылады. Public қызметші сөзімен сипатталушы берілгендер кластан тыс та қолданылады.Private:Кластың ішінде қолданылады (жабық) Public: Кластан тыс (ашық) қолданылады. Класс құрамына кіретін функциялар класс әдістері болып табылады.Класс ішіндегі берілгендер мүшелер немесе класс өрістері деп аталады.Келесі мисалды қарастырайық:
smallobj.cpp
# includeiostream. h
class smallobj
{private:
Int somedata;
public:
void setdata (int d)
{somedata = d;}
void showdata ( )
{cout " өрістің мәні = " somdata endl;}
};
Int main ( )
{ smallobj s1,s2;
s1. Setdata (1066);
s2. Setdata (1776);
s1. Showdata ( );
s2. Showdata ( );
return 0;}
setdata( ) и showdata( ) функциялары класс ішінде анықталған, яғни функция коды класс анықтамасында орналасқан. Осындай түрде анықталған класс әдісі кірістірілген анықтама болып табылады.
main функциясында sl, s2 екі объектісі анықталған. Объектіні анықтау объектіні сақтауға қажетті жады бөлу болып табылады.
Объект есімін класс әдісімен байланыстыру үшін нүкте (.) операциясын қолданады. Нүкте операциясы класс мүшесін алу операциясы деп аталады. Кейбір объектілі бағытталған программалау тілдерінде объект әдісін шақыруды хабарламалар деп атайды.
Мысалы:
smallobj.cpp
# includeiostream. h
class Distance
{ private:
Int feet
sloat inches;
public;
void setdist (in ft, sloat in )
{feet = ft; inches = in; }
void getdist ( )
{ cout "feet=";cinfeet;
cout "inches=";cin inches;
};
int main ()
{distance dist 1 ,dist2;
dist1.setdist (11,6.25);
dist2. getdist ( );
cout "\n dist1 = ";dist1. showdist ( );
cout \n dist2 = "; dist2. showdist ( );
cout endil;
return 0;
}
11 және 6,25 аргументтерімен шақырылған dist1 объектісінің өрістерінің мәні setdist функциясының көмегімен беріледі, ал dist2 объектісінің өрістерінің мәнін getdist () функциясының көмегімен қолданушы енгізеді.
Englobj мысалы класс объектісінің өрістерін инициализацияау үшін класс әдісін қолданудың екі тәсілін көрсетеді. Объект өрістерін құру кезінде программа сәйкес тәсілді шақырудан гөрі, автоматты инициализациялау ыңғайлы.Инициализациялаудың мұндай түрі - конструктор деп аталатын ерекше класс әдісінің көмегімен іске асырылады. Конструкторларды бірнеше ерекшеліктер бар. Біріншіден, конструктор аты класс атымен дәл сәйкес келеді. Екіншіден,конструкторда қайтарылушы мәні болмайды. Бұл конструктордың жүйе арқылы шақырылатындығымен түсіндіріледі. Яғни конструктордың мәнді қайтаратын программа немесе функцияның болмайтындығын көреміз. Конструктордың қызметі - класс объектісінің өрістерін инициализациялау.
мысал 3:
counter. cpp
# include iostream. h
class Counter
{private:
unsigned int count;
public:
Counter ( ) : cout (0)
{*пустое тело*}
void inc_count ( )
{ count++;}
int get_count ( )
{ return count; }
};
int main( )
{ Counter c1, c2;
cout ''\n c1 = "c1. get_count ( );
count "\n c2="c2. get_count ( );
c1. inc_count ( );
c2. inc_count ( );
cout ''\n c1 = "c1. get_count ( );
count "\n c2="c2. get_count ( );
count endl;
return 0; }
Конструкторда инициализация әдіс прототипі мен функция денесінің арасында орналасқан және қос нүктемен ажыратылады. Инициализацияланатын мән өріс есімімен кейінгі жақшада орналасқан. Counter ( ) : count (0)
Егер класс өрістерінің бірнешеуін инициализациялау керек болса, онда
мәндер үтірмен бөлініп, инициализация тізімі құрылады.
Программа жұмысының қорытындысы:
cl=0
c2=0
cl=1
c2=2
Конструктордың дұрыс жұмыс істеп тұрғанына көз жеткізу үшін, хабарлама басуын талап етеміз:
Counter count (0)
{cout "In Конструктор \" ;}
Программа жұмысының нәтижесі:
Конструктор
Конструктор
c1=0
c2=0
c1=1
c2=2
Объект құрыларда ерекше класс әдісі - конструктор шақырылады. Объектіні жолда автоматты түрде шақырылатын әдіс деструктор деп аталады. Деструктор есімі конструктор есімімен сәйкес келеді және есім алдында ~ тильда белгісі қойылады.
Объектілерді бірнеше тәсілмен жоя алмайтындықтан деструкторлар мәндерді қайтармайды және аргументтері болмайды. Деструктордың негізгі жұмысы - объект құруда конструктормен бөлінген жадыны босату.
Class Foo
private:
int data;
public:
Foo ( ): data (0)
{}
~Foo ( )
{}
};
Жаңа объект құрылуы кезінде қанша аргумент қолдануына байланысты қай конструктор орындалатындығы анықталады.
Класс ішінде класс әдісінің анықталуы міндетті емес.
Класс анықтамасының ішінде тек add_dist ( ) функциясының прототипі бар.
Функияның анықтамасы листингтің басқа жерінде болса да, ол класс әдісі болып табылады. add_dist ( ) функциясы Distance класынан кейін анықталады, add dist ( ) функциясының есімі анықталарда Distance класының есімі және : : символы тұрады. Бұл белгі кең ауқымды келісім операциясының белгісі болып табылады.
Әдістің кластың сыртында анықталу форматы:
Қайтарылатын_мәннің_типі класс_есімі : функция_есімі
{ }
: : -келісім операциясы.
Объектілерді функцияға берілу синтаксисі жайнымалыларды беру
синтаксисімен бірдей. Бірақ мынадай маңызды бөліктері бар:
* Класс әдісіне әруақытта класс өрістерін қолдануға мүмкіндік бар (объект (.) ... жалғасы
Объектілер мен класстар
орындаған: ЖАППАР ДАНИЯР
группа:ПИ 20-03
Объектілер және кластар
Айнымалы өз типіне қандай қатынаста болса, объект те өз класына сондай қатынаста.Класс анықтамасы class қызметші сөзінен басталып, класс есімі жазылады.Құрылым сияқты, класс денесі фигуралық жақшаға алынып, "нүктелі үтір белгіс мен аяқтақтады.ОБП негізгі ерекшелігі берілгендерді жасыра алуы. Бұл терминнің мағынасы мынада: берілгендер класс ішінде орналасқан және кластан тыс орналасқан функциялардың санкциясыз қолданылуынан қорғалған.Егер кейбір берілгендерді қорғау керек болса, онда оларды private қызметші сөзі бар класс бөлігінде орналастыру керек. Мұндай берілгендер тек класс ішінде ғана қолданылады. Public қызметші сөзімен сипатталушы берілгендер кластан тыс та қолданылады.Private:Кластың ішінде қолданылады (жабық) Public: Кластан тыс (ашық) қолданылады. Класс құрамына кіретін функциялар класс әдістері болып табылады.Класс ішіндегі берілгендер мүшелер немесе класс өрістері деп аталады.Келесі мисалды қарастырайық:
smallobj.cpp
# includeiostream. h
class smallobj
{private:
Int somedata;
public:
void setdata (int d)
{somedata = d;}
void showdata ( )
{cout " өрістің мәні = " somdata endl;}
};
Int main ( )
{ smallobj s1,s2;
s1. Setdata (1066);
s2. Setdata (1776);
s1. Showdata ( );
s2. Showdata ( );
return 0;}
setdata( ) и showdata( ) функциялары класс ішінде анықталған, яғни функция коды класс анықтамасында орналасқан. Осындай түрде анықталған класс әдісі кірістірілген анықтама болып табылады.
main функциясында sl, s2 екі объектісі анықталған. Объектіні анықтау объектіні сақтауға қажетті жады бөлу болып табылады.
Объект есімін класс әдісімен байланыстыру үшін нүкте (.) операциясын қолданады. Нүкте операциясы класс мүшесін алу операциясы деп аталады. Кейбір объектілі бағытталған программалау тілдерінде объект әдісін шақыруды хабарламалар деп атайды.
Мысалы:
smallobj.cpp
# includeiostream. h
class Distance
{ private:
Int feet
sloat inches;
public;
void setdist (in ft, sloat in )
{feet = ft; inches = in; }
void getdist ( )
{ cout "feet=";cinfeet;
cout "inches=";cin inches;
};
int main ()
{distance dist 1 ,dist2;
dist1.setdist (11,6.25);
dist2. getdist ( );
cout "\n dist1 = ";dist1. showdist ( );
cout \n dist2 = "; dist2. showdist ( );
cout endil;
return 0;
}
11 және 6,25 аргументтерімен шақырылған dist1 объектісінің өрістерінің мәні setdist функциясының көмегімен беріледі, ал dist2 объектісінің өрістерінің мәнін getdist () функциясының көмегімен қолданушы енгізеді.
Englobj мысалы класс объектісінің өрістерін инициализацияау үшін класс әдісін қолданудың екі тәсілін көрсетеді. Объект өрістерін құру кезінде программа сәйкес тәсілді шақырудан гөрі, автоматты инициализациялау ыңғайлы.Инициализациялаудың мұндай түрі - конструктор деп аталатын ерекше класс әдісінің көмегімен іске асырылады. Конструкторларды бірнеше ерекшеліктер бар. Біріншіден, конструктор аты класс атымен дәл сәйкес келеді. Екіншіден,конструкторда қайтарылушы мәні болмайды. Бұл конструктордың жүйе арқылы шақырылатындығымен түсіндіріледі. Яғни конструктордың мәнді қайтаратын программа немесе функцияның болмайтындығын көреміз. Конструктордың қызметі - класс объектісінің өрістерін инициализациялау.
мысал 3:
counter. cpp
# include iostream. h
class Counter
{private:
unsigned int count;
public:
Counter ( ) : cout (0)
{*пустое тело*}
void inc_count ( )
{ count++;}
int get_count ( )
{ return count; }
};
int main( )
{ Counter c1, c2;
cout ''\n c1 = "c1. get_count ( );
count "\n c2="c2. get_count ( );
c1. inc_count ( );
c2. inc_count ( );
cout ''\n c1 = "c1. get_count ( );
count "\n c2="c2. get_count ( );
count endl;
return 0; }
Конструкторда инициализация әдіс прототипі мен функция денесінің арасында орналасқан және қос нүктемен ажыратылады. Инициализацияланатын мән өріс есімімен кейінгі жақшада орналасқан. Counter ( ) : count (0)
Егер класс өрістерінің бірнешеуін инициализациялау керек болса, онда
мәндер үтірмен бөлініп, инициализация тізімі құрылады.
Программа жұмысының қорытындысы:
cl=0
c2=0
cl=1
c2=2
Конструктордың дұрыс жұмыс істеп тұрғанына көз жеткізу үшін, хабарлама басуын талап етеміз:
Counter count (0)
{cout "In Конструктор \" ;}
Программа жұмысының нәтижесі:
Конструктор
Конструктор
c1=0
c2=0
c1=1
c2=2
Объект құрыларда ерекше класс әдісі - конструктор шақырылады. Объектіні жолда автоматты түрде шақырылатын әдіс деструктор деп аталады. Деструктор есімі конструктор есімімен сәйкес келеді және есім алдында ~ тильда белгісі қойылады.
Объектілерді бірнеше тәсілмен жоя алмайтындықтан деструкторлар мәндерді қайтармайды және аргументтері болмайды. Деструктордың негізгі жұмысы - объект құруда конструктормен бөлінген жадыны босату.
Class Foo
private:
int data;
public:
Foo ( ): data (0)
{}
~Foo ( )
{}
};
Жаңа объект құрылуы кезінде қанша аргумент қолдануына байланысты қай конструктор орындалатындығы анықталады.
Класс ішінде класс әдісінің анықталуы міндетті емес.
Класс анықтамасының ішінде тек add_dist ( ) функциясының прототипі бар.
Функияның анықтамасы листингтің басқа жерінде болса да, ол класс әдісі болып табылады. add_dist ( ) функциясы Distance класынан кейін анықталады, add dist ( ) функциясының есімі анықталарда Distance класының есімі және : : символы тұрады. Бұл белгі кең ауқымды келісім операциясының белгісі болып табылады.
Әдістің кластың сыртында анықталу форматы:
Қайтарылатын_мәннің_типі класс_есімі : функция_есімі
{ }
: : -келісім операциясы.
Объектілерді функцияға берілу синтаксисі жайнымалыларды беру
синтаксисімен бірдей. Бірақ мынадай маңызды бөліктері бар:
* Класс әдісіне әруақытта класс өрістерін қолдануға мүмкіндік бар (объект (.) ... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz