Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3курс инф .docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
652.25 Кб
Скачать

74. Объектілік моделді ќолдану. Кластар жјне объекттер.

Класс бұл қолданушы анықтайтын мәліметтер типі болады.да алдын ала анықталған бірнеше класстар бар.Класстың орындайтын қызметі құрылым қызметіне ұқсайды сондықтанда оның қолданылуы да сәйкес келеді.Класс алдын ала хабарлануы керек.Классты хабарлаудық синтаксистері мынадай түрде болады:

75. Объектілер арасындағы қатынас. Қатынас типтеріне мысал.

Бұл жерде екі компонент Button1 және Label1 көрсетілген.

76. Интерфейс және орындалу. Кластың өмірлік циклы.

Идеалды интерфейс міндетті:    - қолданушы үшін толық және келісілген түсініктеме жиынын беру,    - компоненттің барлық бөлігі үшін келісілген болу,

   - орындалу спецификасын қолданушыдан жасыру, 

- бірнеше орындалуды болдыру,

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

 class X {     private:    protected:      public:          }; 

77. Кластар арасындағы қатынас. Қатынас типтері.Б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:тип_класса имя_класса {поля, методы};Class New_class {……описание членов класса………..};Класс типтері берілген 3-х нің ішіндегі бір атрибут болып табылады: class, struct, union.Кластың аты мәлiметтердiң жаңа түрiнiң идентификаторы болып қалыптасады. Өрiстер негiзгi базалық тип көмегiмен анықталады, әдiстер кәдiмгi функциялар сияқты жазыладыКластар арасындағы қатынас

  • Мурагерлік(Генерализация)-туынды класстың обьектілері ата-аналық класстың барлық қасиеттерін мурагерлікпен иеленеді.

  • Ассоциация-класс обьектілері өзара қарым-қатынас жасайды.

  • Агрегация - бір класстың обьектілері басқа класстардың обьектілеріне кіреді(енеді).

  • Композиция — бір кластың объектілері басқа объектіге кіреді және бір- бірімен әр уақытта тәуелді болады.

  • Класс-Метакласс — қатынас, бір класс басқа бір кластың экземпляры болып табылады.

78. Ассоциация. Мұралау. Әдіс іздеуі.

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

class Product;

class Sale;

class Product {  public:  ...  protected:

Sale* lastSale;

};

class Sale {  public:  ...  protected:

Product** productSold;

};

Мұралау –ОБП принципі , ол бойынша бар класстардың негізінде жаңа класстар құрылып,ол бастапқы класстың қасиеті мен әдістерін иемденеді. Мұралау программалық кодты үнемдеуге мүмкіндік береді.

#include <iostream.h>

#include <string.h>

class employee

{  public:     employee(char *, char *, float);     void show_employee(void);  private:     char name [ 64 ];     char position[64];     float salary;  };

employee::employee(char *name, char *position,float salary)

{     strcpy(employee::name, name);     strcpy(employee::position, position);     employee::salary = salary;  }

void employee::show_employee(void)

{     cout<< "Имя: " << name <<endl;     cout<< "Должность: " << position <<endl;     cout<< "Оклад: $" << salary <<endl;  }

class manager : public employee

{  public:     manager(char *, char *, char *, float, float, int);     void show_manager(void);  private:     float annual_bonus;     char company_car[64];     intstock_options;  };

manager::manager(char *name, char *position, char *company_car, float salary, float bonus, intstock_options) : employee(name, position, salary)

{     strcpy(manager::company_car, company_car) ;     manager::annual_bonus = bonus ;     manager::stock_options = stock_options;  }

void manager::show_manager(void)

{     show_employee();     cout<< "Машинафирмы: " <<company_car<<endl;     cout<< "Ежегоднаяпремия: $" <<annual_bonus<<endl;     cout<< "Фондовыйопцион: " <<stock_options<<endl;  }

voidmain(void)

{     employeeworker("Джон Дой", "Программист", 35000);     managerboss("Джейн Дой", "Вице-президент ", "Lexus", 50000.0, 5000, 1000);     worker.show_employee() ;     boss.show_manager(); 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]