Page 59 - 4636
P. 59
модифікатор доступу protected (захищений) означає, що позначений ним елемент може бути
доступний тільки зсередини класу. Він також існує у всіх підкласах; питання, пов'язані з його
використанням, розглядаються нижче в даній лекції. Зараз protected можна сприймати як щось середнє
між public і private.
classclassname { publicSattribute;
public function get($name) {
return $this->$name;
}
public function set ($name, $value) {
$this->$name = $value;
}
}
Зараз кожен елемент класу позначений відповідним модифікатором доступу. Ключові слова public
можна не вказувати, оскільки цей модифікатор приймається за замовчуванням, однак, якщо в коді
наявні й інші модифікатори доступу, то вказівка public може спростити читання всього коду.
Виклик операцій класу
Операції класу можна викликати в основному тим самим способом, яким викликаються атрибути
класу. Якщо в нашому розпорядженні є такий клас:
classclassname {
functionoperationl() {
}
functionoperation2($paraml, $param2) {
}
}
і ми створюємо об'єкт типу classname з ім'ям $а наступним чином:
$а = newclassname();
то ми можемо викликати операції так само, як викликали інші функції: використовуючи їх ім'я і
вказуючи в дужках будь-які необхідні ними параметри. Оскільки ці операції належать об'єкту, а не є
звичайними функціями, необхідно вказати об'єкт, до якого вони відносяться. Ім'я об'єкта
використовується так само, як і атрибути об'єкта, а саме:
$a->opera’tionl () ;
$a->operation2 (12, "test");
Якщо операції щось повертають, то дані які повертаються можна отримати таким чином:
$х = $a->operationl();
$у = $a->operation2(12, "test");
Реалізація спадкування в РНР
Якщо клас має бути підкласом іншого класу, для зазначення цього факту використовується ключове
слово extends. Наведений нижче код створює клас, успадкований від раніше визначеного класу А.
class В extends А { public
$attribute2; function operation2()
{
}
}
Якщо клас А оголошений таким чином:
class А { public $attributel;
function operationl() {
}
}
то всі показані нижче звернення до операцій та атрибутів об'єкта типу будуть допустимими:
$b = new В();
56