русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Наследование и виртуальные методы


Дата добавления: 2013-12-23; просмотров: 983; Нарушение авторских прав


Задание

Статические члены класса

При использовании классов и объектно-ориентированного подхода также можно создавать статические члены класса. Такие члены существуют в единственном экземпляре и разделяются всеми экземплярами (объектами) одного и того же класса. В этом и заключается весь смысл их существования.

Статическое свойство класса недоступно через обращение $this->property или $obj‑>property. Вместо этого следует использовать немного необычный синтаксис:

ИмяКласса: :$property или self: : $property(при вызове из метода класса).

Статический метод во время своего запуска не получает ссылку $this, поэтому он может работать только со статическими членами (свойствами и другими методами) своего класса.

// класс, который "считает", сколько его экземпляров существует в текущий момент

<?php ## Использование статических членов класса,

class Counter {

// Скрытый статический член класса — общий для всех объектов,

private static $count = 0;

// Конструктор увеличивает счетчик на 1.

public function __construct() { self::$count++; }

// Деструктор же — уменьшает.

public function __destruct() { self::$count—; }

// Статическая функция, возвращает счетчик объектов,

public static function getCount() { return self::$count; }

)

// Создаем б объектов.

for ($objs=array(), $i=0; $i<6; $i++)

$objs[] = new Counter();

echo "Сейчас существует {$objs[0]->getCount()} объектов.<br>";

// Удаляем один объект.

$objs[5] = null;

// Счетчик объектов уменьшится!

echo "А теперь — {$objs[0]->getCount()} объектов.<br>";

// Удаляем все объекты.

$objs = array();

// Другой способ вызова статического метода — с указанием класса.

// Это очень похоже на вызов функции из библиотеки,



echo "Под конец осталось — ".Counter::getCount()." объектов.<br>";

?>

Создать для задания из Лекции№9 классы User(для клиента, который регистрируется на форуме), Subject(для тем форума с краткой аннотацией к каждой), Message(класс для сообщения, содержащий такие поля, как сообщение, пользователь, время отправки). Снабдить каждый класс необходимыми функциями. Протестировать на примеры из Лекции№9.

Наследование — одно из основных понятий ООП. При помощи механизма наследования вы можете создавать новые типы данных взяв за основу некоторый уже существующий класс, который в этом случае называют базовым (base class). Получившийся же класс носит имя производного (derived class).

Наследование в ООП используется для нескольких различных целей.

1. Добавление в существующий класс новых методов и свойств или замена уже существующих. При этом "старая" версия класса уже не будет использоваться; ценность представляет именно новый, расширенный класс.

2. Наследование в целях классификации и обеспечения однотипности поведения различных классов. Новый, производный класс обладает теми же самыми "особенностями", что и базовый, и может использоваться везде вместо последнего.



<== предыдущая лекция | следующая лекция ==>
Модификаторы доступа | Переопределение методов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.