Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
30.05.2020
Размер:
655.36 Кб
Скачать

7 Об'єктно-орієнтоване програмування на рнр

У лекції розглядаються такі питання:

    1. Принципи ООП.

    2. Класи та об'єкти.

    3. Створення класів та екземплярів класів

    4. Написання коду класу.

    5. Поліморфізм.

    6. Спадкування.

Об'єктно-орієнтоване програмування на РНР

ООП (Об’єктно-орієнтоване програмування) - це підхід до розробки щодо більших проектів з довгим часом життя. Мова PHP стає усе більш популярною і використовується в багатьох професійних проектах. Через це, техніка ООП все частіше використовується в PHP- проектах.

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

7.1 Принципи ооп

Об’єктно-орієнтоване програмування засноване на трьох принципах:

  • Інкапсуляції;

  • Поліморфізмі;

  • Спадкуванні.

Інкапсуляція - це механізм, що поєднує дані й обробляє їхній код як єдине ціле.

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

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

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

7.2 Класи й об'єкти

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

Екземпляр класу - це об'єкт. Об'єкт - це сукупність даних (властивостей) і функцій (методів) для їхньої обробки. Властивості й методи називаються членами класу. Взагалі, об'єктом є все те, що підтримує інкапсуляцію.

Якщо клас можна розглядати як тип даних, то об'єкт - як змінну (за аналогією). Скрипт може одночасно працювати з декількома об'єктами одного класу, як з декількома змінними.

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

7.3 Створення класів та екземплярів класів

Опис класів в PHP починаються службовим словом class:

class Ім'я_класу {

// опис членів класу - властивостей і методів для їхньої обробки

}

Для оголошення об'єкта необхідно використовувати оператор new:

Об'єкт = new Ім'я_класу;

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

За загальноприйнятими правилами імена класів ООП починаються із прописної букви, а всі слова в іменах методів, крім першого, починаються із прописних букв (перше слово починається з малої літери).

Приклад класу на PHP:

<?php

// Створюємо новий клас Coor:

class Coor {

// дані (властивості):

var $name;

var $addr;

// методи:

functіon Name() {

echo "<h3>John</h3>";

}

}

// Створюємо об'єкт класу Coor:

$object = new Coor;

?>

Доступ до класів і об'єктів в PHP

Ми розглянули, яким чином описуються класи й створюються об'єкти. Тепер нам необхідно одержати доступ до членів класу, для цього в PHP призначений оператор ->. Приведемо приклад:

<?php

……………….

// Одержуємо доступ до членів класу:

$object->name = "Alex";

echo $object->name;

// Виводить 'Alex'

// А тепер одержимо доступ до методу класу (фактично, до функції усередині класу):

$object->Getname();

// Виводить 'John' заголовними буквами

?>

Щоб одержати доступ до членів класу усередині класу, необхідно використовувати покажчик $thіs, котрий завжди ставиться до поточного об'єкта. Модифікований метод Getname():

functіon Getname() {

echo $thіs->name;

}

У такий же спосіб, можна написати метод Setname():

functіon Setname($name) {

$thіs->name = $name;

}

Тепер для зміни ім'я можна використовувати метод Setname():

$object->Setname("Peter");

$object->Getname();

А от і повний лістинг коду:

<?php

// Створюємо новий клас Coor:

class Coor {

// дані (властивості):

var $name;

// методи:

functіon Getname() {

echo $thіs->name;

}

functіon Setname($name) {

$thіs->name = $name;

}

}

// Створюємо об'єкт класу Coor:

$object = new Coor;

// Тепер для зміни ім'я використовуємо метод Setname():

$object->Setname("Nіck");

// А для доступу, як і колись, Getname():

$object->Getname();

// Сценарій виводить 'Nіck'

?>

Покажчик $thіs можна також використовувати для доступу до методів, а не тільки для доступу до даних.

Соседние файлы в папке Конспект