ОБЪЕКТІЛІ-БАҒЫТТАЛҒАН ПРОГРАММАЛАУ (ОБП)



Орындаған: Нұржанова С. Н.
Тобы: ВТ-405
Тексерген: Жаксыгулова Д. Д.

Объектілі-бағытталған программалау негізі.
Кластар иерархиясы.
Объект қасиеттері: инкапсуляция, тұқым қуалау, полиформизм.
Конструкторлар мен деструкторлар.

ОБП элементтері 70-ші жылдарда Симула тілінде модельдеуде қолданылды. Қазірде кең құлаш жайған программалау технологиясына айналып отыр. ОБП негізгі мақсаты - программа құруда деңгейін көтеру. С++ тіліндегіі ОБП негізін қалаушы - Бьярне Страуструп, 80-жылдары Bell Labs компаниясында өңдеген.

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

С++-тегі класс структураның кеңейтілген түрі және объект құруға арналған. С++-тегі класс шаблон секілді, оның негізінде объектілер құрылады. Кез-келген кластың бірнеше ішкі кластары болуы мүмкін. Кластар иерархиясы құрылады, баба класы жалпы сипаттаға әдістерден тұрады. Кластың құрамын арнайы кілттік сөздердің көмегімен реттеуге болады. Олар: public - «ашық», «көрінетін» бөлігі private - «тасаланған» бөлігі («жабық») protected - «қорғалған» бөлігі. «Көрінетін» бөлігіндегі сипатталған әдістер класты қолданатын кез-келген программадан шақырылады, яғни кластың интерфейсін құрайды. «Тасаланған» бөлігіндегі элементтер тек өзінің әдістерінде қолданылады, ал«қорғалған» бөлігіндегі элементтер өз әдістері мен ұрпақ кластарда қолданылады

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

double get_sin(void) ;
}
obj;
void obj_type :: set_v(double ang)
{
data = ang; }
double obj_type :: get_sin(vold) {
return (sin(0. 01*data) ;
# include <
# include
class obj_type
{ double data;
public:
void set_v(double ang) ;
public:
void set_v(double ang) ;

Конструкторлар класс айнымалыларын инициализациялауға және жадыдан орын бөлуге арналған айрықша функция болып табылады. Конструктор аты өзі тиісті класс атымен бірдей болады. Класс объектісін құру барысында қажетті конструктор автоматты түрде шақырылады. Егер класс сипатында конструктор сипатталмаған болса, онда компилятор стандартты класс құрады.
Деструктор - бұл да айрықша функция, жойылатын объект алып тұрған динамикалық жадыны босату қызметін атқарады. Деструктордың да аты класс атымен бірдей, тек алдында ~ (тильда) жазылады. Деструктор - класс объектісіне сілтейтін көрсеткіш арқылы анықталған delete операторы кездескенде шақырылады. Деструктордың конструктордан айырмашылығы ешқандай аргументтен тәуелді емес. Егер деструктор айқын түрде анықталмаса, компилятор класс үшін стандартты деструктор бөледі. Класс деструкторы мен конструкторы С++ тілінде динамикалық жадыны үлестіру және босату үшін сәйкесінше Nen, delete қолданылады.
# include
# include
class string
char * Q string;
int strieng;
public
string (char*) ; (конструктор)
~ string ( ) ; }(деструктор)
string ::string (char*init str) {
Q string = new (Q string, init str) ;
if (!Q string) cont << «Жады жетіспейді»;
strieng:=streen (Q string) ;
}
string :: ~ string ( ) ;
{
cout << «Жол»
delete Q string;
Q string = (Char *) 0;
cout << “Босатылды \n”; }
void main ( ) {
string First («Алғашқы жол») ; First - конструкторды шақыру}
{
string second («Екінші жол») ; Second - үшін конструктор шақыру }
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz