php

#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, за которым следует имя создаваемого класса:

#7. 1 php Классы и объекты

В этой главе рассматриваются основы объектно-ориентированного программирования (ООП). Использование РНР вполне возможно и без объектно-ориентированного программирования. Но при создании больших сложных проектов, а также при работе в команде использование ООП является весьма серьезным преимуществом.

#6.17 php Web-приложения - итоги

В этой главе описаны разнообразные приемы проверки данных, вводимых в HTML-формах. Ниже перечислены краткие итоги главы:

Pages

Subscribe to RSS - php