Лекція Класти та об'єкти Клас базова одиниця інкапсуляції. Клас поєднує в собі дані (поля) та програмний код (методи) для їх обробки. Клас є шаблоном, за яким створюються об'єкти


НазваЛекція Класти та об'єкти Клас базова одиниця інкапсуляції. Клас поєднує в собі дані (поля) та програмний код (методи) для їх обробки. Клас є шаблоном, за яким створюються об'єкти
Дата конвертації28.03.2013
Розмір445 b.
ТипЛекція


Лекція 5. Класти та об'єкти

Клас – базова одиниця інкапсуляції. Клас поєднує в собі дані (поля) та програмний код (методи) для їх обробки. Клас є шаблоном, за яким створюються об'єкти

Об'єкт – конкретний екземпляр класу

Члени класу - поля та методи класу

Члени класу можуть бути відкритими та закритими (за умовчанням)

Оголошення класу

class ім’я_класу{

//закриті поля та методи

public:

//відкриті поля та методи

}список_об'єктів;


Приклад 5.1. Створення і використання класу

#include

using namespace std;

// Оголошення класу SimpleClass:

class SimpleClass{

public:

// Цілочисельне поле:

int number;

};

int main(){

// Створення об'єкту MyObj класу SimpleClass:

SimpleClass MyObj;

// Полю об'єкта присвоюється значення:

MyObj.number=5;

cout<<"Object field value is "<

return 0;}



Приклад 5.2. Декілька об'єктів

#include

using namespace std;

class SimpleClass{

public:

int number;}MyObj1, MyObj2;

int main(){

MyObj1.number=5;

MyObj2.number=++MyObj1.number;

cout<<"Object field value is "<

return 0;}



Приклад 5.3. Декілька об'єктів



Приклад 5.3. Декілька об'єктів (продовження)



Приклад 5.4. Закриті і відкриті члени класу



Приклад 5.4. Закриті і відкриті члени класу (продовження)



Статичні поля класу

Статичне поле класу - поле, спільне для всіх об'єктів цього класу. Оголошується за допомогою ключового слова static.

Приклад 5.5. Статичні поля класу



Приклад 5.5. Статичні поля класу (продовження)



Перевантаження методів

Як і звичайні функції, методи класів можна перевантажувати. Перевантаження методу - створення декількох версій методу з одною і тою самою назвою, але різними прототипами

Приклад 5.6. Перевантаження методу



Передача об'єктів аргументами функцій

При передачі об'єкту аргументом функції в якості імені аргументу вказується ім'я відповідного класу

Приклад 5.7. Аргумент функції - об'єкт

Результат функції - об'єкт

Якщо функція в якості результату повертає об'єкт, ідентифікатором типу результату вказують ім'я відповідного класу

Приклад 5.8. Результат функції - об'єкт



Приклад 5.8. Результат функції - об'єкт (продовження)



Вказівники на об'єкти

Змінна-вказівник може посилатись на об'єкт. Оператор -> використовують для посилання на член класу. Ключове слово this є вказівником на об'єкт, з якого викликається метод

Приклад 5.9. Вказівники на об'єкти

class MyClass{

public:

int n;

void show(){cout<<"n = "<

};

int main(){MyClass a,b;

//Вказівники на об'єкт:

MyClass *p,*q;

//Значення вказівників:

p=&a; q=&b;

//Доступ до полів і методів через вказівник:

p->n=10; (*q).n=20; p->show(); (*q).show();

return 0;}

Приклад 5.10. Використання вказівника this

class MyClass{

public:

int n,m;

void show(){cout<<"m = "<m<

Масиви об'єктів

При створенні масиву об'єктів в якості типу елементів вказують ім'я відповідного класу

Приклад 5.11. Масиви об'єктів

class MyClass{

public:

double x;

void show(){cout<<"x = "<

};

int main(){

const n=5;

int i;

MyClass objs[n];

for(i=0;i

objs[i].x=2*i+1;

cout<

objs[i].show();}

return 0;}



Дружні функції

В загальному випадку зовнішня до класу функція доступу до закритих членів класу не має. Щоб функція мала доступ до закритих членів, її необхідно оголосити як дружню до класу. Для цього прототип функції, разом з ключовим словом friend вказується при описі класу

Приклад 5.12. Дружні функції

class MyClass{

double x;

public:

MyClass(double z){x=z;}

//Дружня функція:

friend void show(MyClass obj);

};

void show(MyClass obj){cout<<"x = "<

int main(){

MyClass a(10);

show(a);

return 0;}

Приклад 5.13. Дружні функції - 2

class B;

class A{

double x;

public:

A(double z){x=z;}

friend double summa(A a,B b);

}a(3.5);

class B{

double y;

public:

B(double z){y=z;}

friend double summa(A a,B b);

}b(2.3);

double summa(A a,B b){

return a.x+b.y;}

int main(){cout<<"Total is "<

return 0;}

Конструктори і деструктори

Конструктор - метод, що викликається автоматично при створенні об'єкту

Деструктор - метод, що викликається автоматично при видаленні об'єкту з пам'яті

Правила оголошення конструктора

1. Ім'я конструктора співпадає з назвою класу

2. Конструктор не повертає аргумент і для нього не вказується ідентифікатор типу результату

3. Конструктор може мати аргументи і його можна перевантажувати

Правила оголошення деструктора

1. Ім'я деструктора починається з символу ~ (тильда) і співпадає з назвою класу

2. Деструктор не повертає аргумент і для нього не вказується ідентифікатор типу результату

3. Деструктор не має аргументів і його не можна перевантажувати



Приклад 5.14. Оголошення конструктора

class MyClass{

public:

int m,n;

//Конструктор класу:

MyClass(){

m=0;

n=0;}

void show(){

cout<<"m = "<

cout<<"n = "<

};

int main(){

//При створенні класу поля отримують значення:

MyClass obj;

//Відображення полів об'єкту:

obj.show();

return 0;}

Приклад 5.15. Конструктор з аргументами

class MyClass{

public:

int m,n;

//Конструктор класу з аргументами:

MyClass(int a,int b){

m=a;

n=b;}

void show(){

cout<<"m = "<

cout<<"n = "<

};

int main(){

//При створенні об'єкту вказуються значення полів:

MyClass obj(1,2);

//Відображення значень полів об'єкта:

obj.show();

return 0;}

Приклад 5.16. Перевантаження конструктора

class MyClass{

public:

int m,n;

MyClass(){m=0; n=0;}

MyClass(int a){m=a; n=a;}

MyClass(int a,int b){m=a; n=b;}

void show(){

cout<<"m = "<

cout<<"n = "<

};

int main(){

MyClass obj1;

MyClass obj2(1);

MyClass obj3(2,3);

obj1.show(); obj2.show(); obj3.show();

return 0;}

Приклад 5.17. Використання деструктора

class MyClass{

public:

int m,n;

//Конструктор класу:

MyClass(){

m=0;

n=0;

cout<<"Object has been created"<

//Деструктор класу:

~MyClass(){

cout<<"Object has been deleted"<

};

int main(){

MyClass obj;

return 0;}

Резюме

1. Клас є базовою одиницею інкапсуляції, містить поля (дані) та методи (код для обробки даних). Екземпляром класу є об'єкт.

2. Поля і методи класу можуть бути закритими і відкритими.

3. Статичне поле - це поле, спільне для всіх об'єктів даного класу.

4. Щоб зовнішня функція мала доступ до закритих полів, її необхідно оголосити як дружню.

5. Об'єкти можна передавати аргументами функцій, повертати в якості результату, створювати масиви об'єктів, створювати вказівники на об'єкти.

6. Методи класів можна перевантажувати.

7. Конструктор - метод, що запускається при створенні об'єкту. Конструктор можна перевантажувати.

8. Деструктор - метод, що запускається при знищенні об'єкту. Деструктор не можна перевантажувати.



Схожі:

Лекція Класти та об\Круглий стіл 23. 03. 2012 Психолого-педагогічна корекція шкільної неуспішності учнів
Федько Ганна -7а клас, Пересунько Ірина 7б клас, Корольова Аліна 8а клас, Кисельов Геннадій (навчання на дому, інвалід дитинства)...
Лекція Класти та об\Net remoting. Час життя об'єктів 2007 Зміст
Тут ситуація проста. Такі об'єкти створюються при кожному виклику будь-якого з методів і з завершенням виконання метода ліквідовуються...
Лекція Класти та об\Net remoting. Час життя об'єктів 2006-2009 Зміст
Тут ситуація проста. Такі об'єкти створюються при кожному виклику будь-якого з методів і з завершенням виконання метода ліквідовуються...
Лекція Класти та об\Інформатика 9 клас Розділ 8 Організація даних у зовнішній пам'яті Об'єкти файлової системи
Об'єкти файлової системи – це файли, які містяться у каталогах. Файли та каталоги розташовуються на пристроях зберігання даних. Файли,...
Лекція Класти та об\Інформації про тип. Центральне місце клас
Змінні категорії Reference Type ведуть себе подібно до вказівникових типів. Відповідні об’єкти розміщуються на купі
Лекція Класти та об\Аналіз Аналіз Перший (шкільний) етап – 12055
Взяло участь 104 учня (8 клас 20 учнів, 9 клас 24 учня, 10 клас 36 учнів, 11 клас 24 учня)
Лекція Класти та об\Це наш дружний та веселий клас, Школа рідний дім для нас 8-а клас

Лекція Класти та об\Інформатика 9 клас Розділ 30 Створення простих векторних зображень Векторні графічні об'єкти
За допомогою сполучних ліній з'єднуються автофігури так, що при переміщенні об'єктів зв’язок між ними не перериватиметься
Лекція Класти та об\Інформатика 9 клас Розділ 23 Уведення і редагування тексту Основні об'єкти текстового документа
Якщо обрано англійську мову введення, то знаки пунктуації можна набирати, натискаючи відповідні клавіші на клавіатурі
Лекція Класти та об\Інформатика 9 клас Розділ 23 Уведення і редагування тексту Основні об'єкти текстового документа
Якщо обрано англійську мову введення, то знаки пунктуації можна набирати, натискаючи відповідні клавіші на клавіатурі

Додайте кнопку на своєму сайті:
dok.znaimo.com.ua


База даних захищена авторським правом ©dok.znaimo.com.ua 2013
звернутися до адміністрації
dok.znaimo.com.ua
Головна сторінка