Розробка заняття на тему: "Розв'язування задач з використанням методів get та set".

Про матеріал
Даний матеріал містить завдання та пояснення з метою поглибити розуміння понять «геттери» та «сеттери», виробити практичні навички їх застосування, виховувати вміння встановлювати взаємозвʼязок та аналогію між програмними та реальними обʼєктами, розвивати увагу, спостережливість та логічне мислення.
Перегляд файлу

Первомайський ЦНТТУМ

Гурток «Сучасні технології програмування»

Керівник гуртка Семенова Олена Анатоліївна

Розробка заняття на тему:

Тема: Розв'язування задач з використанням методів get та set

Мета: поглибити розуміння понять «геттери» та «сеттери», виробити практичні навички їх застосування, виховувати вміння встановлювати взаємозвʼязок та аналогію між програмними та реальними обʼєктами, розвивати увагу, спостережливість та логічне мислення.

Обладнання: ПК, ПЗ середовище програмування CodeBlocks.

Хід заняття

1. Організаційний момент та розминка.

 Для початку, звичайно, розминка. Вона знову не зовсім звична, тому що:

-по-перше, темою її буде ... сьогодняшній день :)

- по-друге...а ось “по-друге” настане тоді, як ви розгадаєте 12 традиційних слів для розминки :)...

 Так, про що там ми говорили... А.. про день... Він майже святковий, тому що сьогодні за китайським календарем настав, нарешті, рік... Назвіть його:

1.

 

 

 

 

 

2. Його стихією цього року є...?

 

 

 

 

3. Найбіл
ьш велична тварина зі Східного гороскопу:

4. Давня концепція, згідно якій числа визначають наше життя і існування всього, що нас оточує...

 

 

 

 

 

 

5 і далі — назви всіх тварин із 12 за китайським гороскопом, що залишились не названими... ;)

 А ось тепер настає другий незвичний варіант… Далі замінимо традиційне написання ще двох рядків іншим завданням: складіть речення з використанням усіх цих слів. :)

2. Основна частина — повідомлення теми і мети заняття.

 Розім'ялись? Це добре, тому що сьогодні нас чекає багато роботи і для голови і для рук, тому що, як казав колись мій улюблений вчитель “Навички дає тільки практика!”

 Давайте почнемо з того, що розглянемо наше домашнє завдання і попередню тему. Судячи з ваших запитань, уважність ви не вмикали :).

 Чому я так кажу? Тому, що у попередній темі є декілька навмисних помилок, які ви мали б побачити та самостійно виправити, щоб програма запрацювала. І більшість з вас їх не помітила, так, натомість просто сказали, що все працює, але ви не можете зрозуміти, як виконати домашнє завдання. :)  Але ж не могло воно працювати ;).

 Отже, давайте розбиратись із початку... :)

 Останній варіант програми, за допомогою якої ми знайомились із геттерами і сеттерами

class  Cats  //Оголошуємо та описуємо клас котів

{private:

string name;

int age;

 

public:

string GetName ()

{return name;}

int GetAge () 

{return age;}

 

void SetName (string sName)

{name=sName;}

 

void SetAge (int sAge)

{name=sAge;}  Тут не може бути ця змінна... А яка повинна бути? age

void Print ()

{ cout<<“cat1 name is -  \t“<<name<<“\tcat1 age is - \t“<<age<<endl;}

};

 

іnt main ()

{

Cats cat1;

cat1.SetName =“Simone“; /І,відповідно, тут... Таким способом надається значення строковим змінним. А у нас що? Функція!! Адже наші методи сет і гет є саме функціями... Тож, як ми передаємо значення  у функцію? :) ("Simone")

cat1.SetAge = 2;  

cat1.Print();

return 0;

} 

 

 Вносимо зміни:

#include <iostream>

#include <windows.h>

 

using namespace std;

class  Cats  //Оголошуємо та описуємо клас котів

{private:

string name;

int age;

 

public:

string GetName ()

{return name;}

 

int GetAge ()

{   return age;}

 

void SetName (string sName)

{name=sName;}

 

void SetAge (int sAge)

{    age=sAge;}

void Print ()

{cout<<"cat1 name is - \t"<<name<<"\ncat1 age is - \t"<<age<<endl;}

};

 

int main()

{

    Cats cat1;

    cat1.SetName("Simone");

    cat1.SetAge(2);

    cat1.Print();

    return 0;

}

 А ось тепер дійсно все працює, як слід! :)

 Запитання для перевірки: що ви побачите в консолі, якщо ви напишете отак ці два рядка:  

   cat1.SetName( );

   cat1.SetAge( );

 Добре, дібрались до домашнього завдання. Ним було виведення в консоль переданих значень імені та віку нашого об'єкта  cat1 так, щоб вік збільшувався на одиницю.

 Оскільки всі дані ми маємо отримувати із середини класу, то, відповідно, і зміни потрібно робити там же.

 В даному випадку є два способи це зробити.

  1. Ми робимо зміну в методі, який надає це значення. Так, це метод  SetAge

Вік, який ми передаємо в програмі командою “cat1.SetAge(2); “ виводиться в консоль методом  Print, який отримує ці значення від метода (?) так, SetAge. Тому, щоб цей метод повернув значення на одиницю більше, ніж те, яке йому передаємо (“cat1.SetAge(2);”), потрібно там же, внутрі метода, його і збільшити... Не зрозуміло? Ну, ось так:

void SetAge (int sAge)

{    age=sAge+1;}

sAge — це значення, яке ми отримали, в даному випадку, “2”.

 

 Отже, при використанні першого способу програма буде виглядати ось так:

 class  Cats  //Оголошуємо та описуємо клас котів

{private:

string name;

int age;

 

public:

string GetName ()

{return name;}

 

int GetAge ()

{   return age;}

 

void SetName (string sName)

{name=sName;}

 

void SetAge (int sAge)

{    age=sAge+1;}

void Print ()

{cout<<"cat1 name is - \t"<<name<<"\ncat1 age is - \t"<<age<<endl;}

};

 

int main()

{

    Cats cat1;

    cat1.SetName("Simone");

    cat1.SetAge(2);

    cat1.Print();

    return 0;

}

 Що ми побачимо в консолі?


 Ваші завдання:

  1. Знайти другий спосіб. :) Підказка — цей спосіб ви знаєте практично із перших наших занять. :) Напишіть програму, використовуючи його.
  2. Зробіть тепер зміни в вашому коді, щоб користувач міг вводити, скажімо, ім'я та вік об'єкта класу “коти” :) . Результат має бути приблизно отаким:


 Сподіваюсь, після цих нескладних “тренувань” ви краще зрозуміли, як працюють методи get та set.

Приємного часу з С++! :) 

docx
Додано
8 лютого 2022
Переглядів
187
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку