ООП

#7.21 php ООП Оператор проверки типа instanceof

Оператор проверки типа проверяет соместимость класса объекта, стоящего слева от instanceof с классом или интерфейсом, стоящим справа:

$Obj instanceof Class

В самом простом случае оператор instanceof позволяет проверить, является ли объект экземпляром некоторого класса, например,

<?php
class A
{
}

class B
{
}

$a = new A;
var_dump($a instanceof A);
var_dump($a instanceof B);

Результат:
bool(true)
bool(false)

#7.15 php ООП Позднее статическое связывание. Отличия self:: и static::. Использование static:: в нестатическом контексте

Ранее в этой главе обсуждалось, что для доступа к статическому члену или константе класса из этого класса используется конструкция self::. Ключевое словоself всегда вычисляется как ссылка на тот класс, в котором определена использующая его функция. Поэтому в результате выполнения кода

#7.14 php Доступ к методам базового класса

При использовании наследования может возникнуть необходимость вызова перекрытого метода базового класса. Например, пусть метод set_name в классе Animal описан следующим образом:

function set_name($text)
{
    $this->name = $text;
}

Одноименный метод в порожденном классе Lion может вызвать этот метод при помощи префикса Animal::, содержащего имя базового класса. Соответствующее описание выглядит следующим образом:

#7.13 php Переопределение методов базового класса. Модификаторы доступа при переопределении. Запрет переопределения (final)

При наследовании одного класса от другого в порожденном классе имеется возможность создать метод с точно таким же именем, что и в базовом классе. В этом случае метод базового класса будет перекрыт, и объекты порожденного класса будут использовать новый метод вместо перекрытого метода базового класса.

Например, в классе Lion, порожденном на основе класса Animal, можно описать метод set_name, который будет преобразовывать буквы имени в заглавные.

#7.12 php Наследование и защищённые методы

Как было показано выше, публичные (public) свойства и методы доступны для вызова извне объекта, а приватные - нет. Но если свойство или метод объявлены как защищенные (protected), доступ к ним разрешен не только изнутри класса, где они описаны, но также изнутри всех классов, порожденных на основе данного.

#7.11 php Наследование классов

Зачастую удобно не разрабатывать новый класс заново, а основать его на каком-либо другом классе. Например, предположим, что разработан класс Vehicle, в котором содержатся разнообразные методы управления транспортным средством, например, start, run, step и stop. Далее, пусть требуется создать классы, описывающие специфические типы транспортных средств, например, Car, Truck, Helicopter, Oceanliner и т.д.

#7. 5 php Конструкторы и деструкторы

Конструкторы объектов

Как было показано выше, для инициализации свойств классов можно использовать соответствующие методы доступа. Но существует и другой способ присвоения значений свойствам класса при создании объекта — использование конструкторов. В PHP конструктором является метод класса со специальным именем __constuct (имя начинается с двух подчеркиваний), которому при создании объекта могут быть переданы соответствующие данные.

#7. 4 php Управление доступом к свойствам и методам класса

В PHP существует три модификатора доступа к свойствам и методам класса:

  • public -- нет ограничений на доступ.
  • private -- доступ разрешен только изнутри класса
  • protected -- доступ разрешен только изнутри класса и всех его потомков

По умолчанию все свойства и методы объявлены как public. Рекомендуется всегда явно указывать модификатор доступа для всех свойств и методов.

#7. 3 php Создание объекта. Представление объекта в виде строки (перегрузка преобразования объекта в строку)

В предыдущем разделе был создан класс Animal, но для того, чтобы его использовать, следует вначале создать объект данного класса. Обычные переменные в зависимости от своего содержимого имеют определенный тип данных. Класс также является типом данных, и объект класса может быть сохранен в переменной.

#7. 2 php Создание класса

Класс является набором переменных и функций, или, в терминах ООП, свойств и методов. Класс является одним из типов данных. Создавая объекты определенного класса, их можно сохранять в переменных. В предыдущем разделе в качестве примера был приведен класс Animal, который будет подробно рассмотрен ниже. Описание класса начинается с ключевого слова class, за которым следует имя создаваемого класса:

Pages

Subscribe to RSS - ООП