Розробка уроку

Тема: поняття об'єкта у мові програмування, його властивостей і методів. Створення програми, її виконання та налагодження мовою PHP.

Мета: сформувати визначення об'єкта у мові програмування, ознайомити учнів з його властивостями та методами, навчити створювати програми мовою PHP.

По завершенню вивчення учень:

Обладнання: ПК із встановленою ОС і браузером, веб-сервер з можливістю використання PHP або стійким сполученням з Інтернетом для використання online-компілятора PHP (наприклад, Sandbox Online PHP Functions).

Структура уроку

  1. Організаційний момент.
  2. Актуалізація опорних знань.
  3. Вивчення нового матеріалу.
  4. Інструктаж з ТБ.
  5. Закріплення вивченого матеріалу.
  6. Підбиття підсумків уроку.
  7. Домашнє завдання.

Хід уроку

1. Організаційний момент
Вітання з класом. Перевірка присутності і готовності учнів до уроку. Перевірка виконання домашнього завдання.

Мотивація навчання: на цьому уроці ви ознайомитеся з основами об'єктно-орієнтованого програмування (ООП) мовою PHP. Ви дізнаєтеся про принципи ООП і навчитеся писати простенькі програми мовою PHP.

Найчастіше об'єкти, що створюються за допомогою ООП, відображають реальні предмети. Наприклад, при створенні форуму сайту доречно мати клас Member для збереження даних про кожного учасника форуму (ім'я, обліковий запис, електронна адреса, пароль тощо). Для цього класу потрібно означити (описати) методи опрацювання даних: реєстрація, авторизація, вихід із системи тощо.

2. Актуалізація опорних знань

Завдання. Назвати поняття, виділені жирним шрифтом, і порівняти з поданим описом у тексті щодо об'єктно-орієнтованого програмування (ООП).

PHP — це мова сценаріїв загального призначення з відкритим вихідним кодом.

Основні області застосування PHP:

Головна область застосування PHPскрипти, що працюють на стороні сервера. PHP спроможний опрацьовувати дані форм, породжувати динамічні сторінки, відсилати й приймати cookies та багато чого іншого.

3. Вивчення нового матеріалу

Створення (опис) класів у коді мовою PHP має такий вигляд:

class Назва_класу
{     //опис змінних і методів
}

Порада: кожен клас описуйте в окремих файлах з назвою, що збігається з назвою класу.

Створення об’єктів у PHP здійснюють за допомогою ключового слова new. Наприклад, створення об'єктів класу Member і збереження у змінніих $member1 і $member2 має такий вигляд:

$member1 = new Member();
$member2 = new Member();

Незважаючи на те що, об'єкти створено від одного і того ж класу, змінні $member1 і $member2 не залежать одна від одної.

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

<?php
class Human {}
class Animal{}
$mike = new Human;
$john = new Human;
$cat  = new Animal;
$dog  = new Animal;
var_dump($mike);
var_dump($cat);
var_dump(new Animal);
?>

і таким (з точністю до ознак кінця рядка) результатом:

object(Human)#1  (0) {}
object(Animal)#3 (0) {}
object(Animal)#5 (0) {}

Оператор instanceof призначено для перевірки того, чи є даний об'єкт представником конкретного класу. Ліворуч від оператора пишуть назву змінної, а праворуч — назву класу. Якщо вказаний об'єкт є представником зазначеного класу, то оператор поверне true, а інакше — false — див. приклад.

<?php
class Dog{}
class Cat{}
$c = new Cat;
var_dump($c instanceof Dog); // false
var_dump($c instanceof Cat); // true
?>

з таким результатом:

bool(false)
bool(true)

Ідентифікатори доступу для змінних класу:

Створення (опис) змінної класу здійснюють таким чином: вказують ідентифікатор доступу (public, private або protected), а потім — назву змінної і через знак рівності — початкове значення. Наприклад,

class ClassName
{ public    $property1 = 1;
  private   $property2 = 2;
  protected $property3;
}

Якщо не вказувати початкове значення змінної класу (у поданому вище прикладі це зроблено для змінної $property3), то її початковим значенням буде null.

Доступ до змінної класу здійснюють за допомогою оператора ->, записаним між назвою класу і назвою змінної (властивості) цього класу — див. приклад опису класу Member зі змінною, створенням об'єкту — представника об'єкт цього класу, наданням значення змінної класу і виводенням її значення на екран.

В інших мовах програмування замість оператора -> використовують звичайну крапку у записі між назвами класу та його змінної (властивості).

Опис методів класу здійснюють за допомогою ключового слова function. Єдина відмінність від опису звичайних функцій полягає у тому, що можна додати один з ідентифікаторів доступу: public, private і protected (зміст той самий, що і для змінних класу.

Розглянемо приклад класу, що містить:

У розглянутому прикладі використано нове ключове слово $this, що посилається на сам об'єкт. Використання $this у методі об'єкту надає доступ до будь-якої змінної чи методу об'єкта. Наприклад, метод login отримує доступ до змінної $loggedIn через $this->loggedIn. До речі, ця змінна має ідентифікатор доступу private (приватний), тому її не можна викликати з будь-якої частини скрипта, а лише з методів об'єкта. Це вважають гарним тоном, бо опис об'єкта розмежовано з рештою коду. По можливості намагаються використовувати ідентифікатор доступу private, щоб об'єкти були автономними, мобільними і захищеними.

Змінна $username у прикладі має ідентифікатор доступу public (відкритий). Це зроблено лише для того, щоб показати, як можна отримувати доступ до змінних класу об'єкта.

Виклик методу об'єкта здійснюють, використовуючи оператор ->:

$object->methodName()

Аргументи при потребі вказують у (круглих) дужках. Метод може повертати значення, які можна використовувати надалі. Застосування методів розглянемо на прикладі з таким результатом виконання.

Прокоментуємо дію коду.

  1. Описано клас Member.

  2. Створено об'єкт — предстаник класу Member і збережено його у змінній $member.

  3. Змінній $username створеного об'єкту надано значення "Fred".

  4. Метод $member->isLoggedIn() повернув значення false змінної $loggedIn (надане як усталено). Внаслідок цього виведено повідомлення: "Fred is logged out". Виклик методу login() змінив значення змінної $loggedIn на true.

  5. Метод $member->isLoggedIn() повернув true, після чого виведено повідомлення: "Fred is logged in".

  6. Метод $member->logout() надав значення false змінній $loggedIn.

  7. Метод $member->isLoggedIn() повернув значення false, тому знову виведено повідомлення: "Fred is logged out".

4. Інструктаж з ТБ
5. Закріплення вивченого матеріалу


Завдання 1. Написати код PHP, у якому створити:

і відобразити результат конвертації ціни для обох об'єктів. Записати код у файл з назвою Ваше прізвище1.txt у вказану вчителем теку. Порівняти з демонстраційним розв'язанням.

Завдання 2. Написати код PHP, у якому створити:

Код має вивести на екран результати методу TripTime для обох створених об'єктів для відстані 1000, відобразити на екрані структури об’єктів (використати вказівку print_r($назва змінної)). Записати код у файл з назвою Ваше прізвище2.txt у вказану вчителем теку. Порівняти з демонстраційним розв'язанням.

Завдання 3. Написати код PHP, у якому:

Записати код у файл з назвою Ваше прізвище3.txt у вказану вчителем теку. Порівняти з демонстраційним розв'язанням.

6. Підбиття підсумків уроку

Протягом уроку ми пригадали основні поняття об'єктно-орієнто­ваного програ­мування і ознайомилися, як у програмах мовою PHP:

Виставлення оцінок.

7. Домашнє завдання
Написати код PHP, у якому cтворити клас User з властивостями login, password, email, rating. Як усталено значення рейтингу встановити нульовим.


Текст упорядкувала Горбенко Антоніна Андріївна, викладач Київського професійно-педагогічного коледжу імені Антона Макаренка Шевченківського району міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 17.10.2017 р. по 20.10.2017 р.