§ 1. Канцэпцыя ААП у мове праграмiравання

 

Аб'ект — гэта сукупнасць даных і метадаў працы з імі.

Арганізацыя даных унутры аб'екта схаваная ад карыстальніка. Даныя і спосабы іх чытання і запісы з'яўляюцца ўласцівасцямі аб'екта, якія можна змяняць. Метады — гэта падпраграмы для апрацоўкі даных (прыклад 1.8).

У праграмiраванні аб'ект — гэта экзэмпляр класа. Па сутнасці, клас з'яўляецца планам, структурай аб'екта. А аб'ект уяўляе канкрэтнае ўвасабленне класа, яго рэалізацыю.

Клас — гэта тып даных, якi вызначаецца карыстальнікам. Даныя, якімі можна характарызаваць аб'ект класа, называюць палямi. Функцыі, якія могуць выконваць якія-небудзь дзеянні над данымі (уласцівасцямі) класа, называюць метадамі.

Кожная пераменная тыпу «клас» з'яўляецца аб'ектам. Аб'ект класа вызначаецца канкрэтным значэннем пераменных, якое апісваюць станам аб'екта.

Класы забяспечваюць утойванне даных, іх ініцыялізацыю, няяўнае пераўтварэнне карыстальніцкіх тыпаў, сродкі для перагрузкі аперацый і інш.

З паняццем класа як тыпу даных вы пазнаёміліся ў 10 класе. У прыкладзе 1.9 прыведзены апісанні класаў, якія разбіраліся раней.

Метад класа, які гарантуе, што ён не будзе змяняць аб'ект або выклікаць іншыя метады, якія могуць яго змяніць, называюць канстантным метадам.

Каб зрабіць метад канстантным, трэба проста дадаць ключавое слова const да аб'явы функцыі пасля спісу параметраў, але перад целам функцыі (прыклад 1.10). Для метадаў, вызначаных па-за целам класа, ключавое слова const павінна выкарыстоўвацца як у аб'яве функцыі (у целе класа), так і ў вызначэнні функцыі.


 

Прыклад 1.8. Аб'екты аперацыйнай сістэмы маюць кантэкстнае меню, у якім знаходзіцца спіс дзеянняў, якія можна над аб'ектам выканаць. Кожнае з дзеянняў выклікае на працу пэўны метад, які апісаны ў праграме. У кантэкстным меню звычайна знаходзіцца радок «Свойства», якi дазваляе змяняць уласцівасці аб'екта.

Прыклад 1.9. Апісанне класаў.

Клас для апісання пункту на плоскасці. Поля — каардынаты пункту, метад — вылічэнне вугла нахілу да восі OX адрэзка, які злучае пачатак каардынатаў з пунктам.

class Tchk

{

  private:

    double x, y;

  public:

    double ugol();

};

 

double Tchk::ugol()

{

  double tg = y / x;

  return atan(tg) * 180 / acos(-1);

}

Клас для апісання даты. Палі — дзень, месяц, год. Метад — вывядзенне даты на экран з раздзяляльнікам «.»:

class Date

{

  private:

   int d, m, g;

  public:

   void print();

};

 

void Date::print()

{

  cout << d << "." << m << "." << g;

}

Прыклад 1.10. Выкарыстанне канстантнага метаду:

class Date

{

  private:

   int d, m, g;

  public:

   void print() const;

};

 

void Date::print() const

{

  cout << d << "." << m << "." << g;

}