Lect02
.pdfУстройствоклассов.
Какрождаются,живутиумирают объекты
«Объектно-ориентированное программирование»
доцентПриваловМ.В.
Донецк,ДонНТУ,2011
Состояниеиповедениеобъекта
Состояниеобъекта– суммарный результатегоповедения.
Поведениеопределяетсятем,какие операцииподдерживаетобъектикак ониреализованы.
Операция– этоуслуга,которуюкласс можетпредоставитьсвоимклиентам.
Обязательныеоперации
Конструктор– операциясоздания объектаи/илиегоинициализации.
Деструктор– операция,
освобождающаясостояниеобъекта и/илиразрушающаясамобъект.
Конструкторовможетбытьнесколько, адеструкторвсегдаодин.
Необязательныеоперации.
Селектор– операция,считывающая состояниеобъекта,нонеменяющая состояния
Модификатор– операция,которая изменяетсостояниеобъекта
Итератор– операция,позволяющая организоватьдоступковсемчастям объектавстрогоопределенной последовательности
Примерописанияклассав нотацииязыкаUML
Personnel
-name : char* -inn : long
-passportSeries : char* -passportNumber : long
+GetName() : char* +SetName(in name : char*) : void +GetInn() : long
+SetInn(in inn : long) : void +GetPassportSeries() : char*
+SetPassportSeries(in passportSeries : char*) : void +GetPassportNumber() : long +SetPassportNumber(in passportNumber : long) : void
“- “ – private “+” – public “#” – protected
ОписаниеклассавязыкеC++
class имя_класса{ private:
//описанияатрибутовиметодов protected:
//описанияатрибутовиметодов public:
//описанияатрибутовиметодов
};
Описаниеатрибутов(полей) класса
Описаниеатрибутовсовпадаетс описаниемпеременных,таккак атрибут– нечтоиноекак переменная,принадлежащаяклассу (егополе)иопределяющаяего состояние:
тип1идентификатор1; тип2идентификатор2; ит.д.
Описаниеметодов(функцийчленов)класса
Описаниеметодовсовпадаетс описаниемфункций,таккакметод– этофункция,принадлежащаяклассуи определяющаяегоповедение:
типимя_метода(параметрыметода) модификаторы;
Описаниеконструктораи деструктора
Имяконструкторадолжносовпадатьсименемкласса. Конструкторнеимееттипавозвращаемогозначения. Описанийконструкторовможетбытьнесколькоилине бытьвовсе.
имя_класса(параметрыконструктора);
Имядеструктора– это~имя_класса.Деструкторне можетиметьпараметровиневозвращаетрезультат. Деструкторуклассатолькоодиниегоописание необязательно.
~имя_класса();
Оченьпростойкласс
class MyClass { private:
int count; public:
MyClass() { count = 0; } ~MyClass(){}
int printHello() { cout << "Hello!"; } int getCount() const { return count; }
int setCount(int newCount) { count = newCount; }
};