Август, 22

Знаменатель

(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Проекты | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация (English)

Задания по классам и объектам в PHP

10. Классы и объекты

  1. Описать класс c одним методом и одним свойством. Метод должен печатать значение свойства объекта. Создать экземпляр класса. Вызвать метод.
  2. Показать, что при присваивании объекта переменной объект не копируется.
  3. Показать на примере отличие между переменной-объектом и переменной-ссылкой.
  4. Добавить в класс конструктор, устанавливающий значение свойства в значение переданного в конструктор аргумента. Создать экземпляр класса, используя этот конструктор.
  5. Добавить в класс константу. Сделать так, чтобы метод класса выводил также и значение этой константы.
  6. Добавить в класс статическое свойство. Вывести значение свойства.
  7. Продемонстрировать отличие в работе операторов == (эквивалентность) и === (идентичность) в применении к объектам.
  8. Создать два класса. Первый класс должен содержать свойство, значение которого — экземпляр второго класса. Создать экземпляр первого класса и сделать его копию. Показать, что значение свойства копии — тот же экземпляр второго класса, что и в оригинале.
  9. Определить метод __clone первого класса так, чтобы при создании копии значение свойства также копировалось.
  10. Создать класс, наследующий ранее созданный класс. Переопределить в классе-наследнике метод, печатающий значение свойства и константу так, чтобы в начало вывода добавлялся произвольный текст. Переопределенная версия метода должна вызывать соответствующий метод родительского класса.
  11. Добавить к определению родительского класса ключевое слово final. Объяснить ошибку при наследовании.
  12. Добавить к определению родительского класса ключевое слово abstract. Продемонстрировать невозможность создания экземпляра родительского класса и возможность использования класса-наследника.
  13. Определить три свойства класса, используя ключевые слова public, protected и private. Продемонстрировать действие каждого из них (доступ к свойству из метода класса, доступ к свойству из метода наследующего класса, остальные случаи).
  14. Создать класс со скрытым (private) свойством и открытые (public) методы для чтения и изменения этого свойства.
  15. Определить 2 интерфейса с двумя методами в каждом. Определить класс, реализующий оба интерфейса. Показать с помощью оператора instanceof, что экземпляр класса реализует оба интерфейса.
  16. Добавить в класс деструктор. Когда деструктор будет вызван? Показать на примере.
  17. Определить приведение объекта к строке.