Цель работы
Получить навыки работы с классами и объектами в PHP 5. Освоить основные возможности объектной модели в PHP 5: модификаторы области видимости, клонирование, константы, статические свойства и методы, наследование, перегрузка методов, управление перегрузкой с помощью final, абстрактные классы, интерфейсы
Описание работы
# | Задание |
---|---|
1 | Определить интерфейс student_interface с методами: show_info, set_debts, show_debts, show_students |
2 |
В файле students.php описать класс students, который реализует интерфейс student_interface и
содержит следующие свойства и методы:
|
3 | Добавить в класс конструктор, принимающий 4 аргумента: имя студента, номер группы, количество выполненных заданий, количество пропущенных лекций и устанавливающий значение свойств $name, $group, $n_assignments и $n_absents соответственно |
4 | Определить метод __clone() так, чтобы при создании копии объекта класса students сбрасывались значения свойств $n_assignments, $n_absents, $debts, $n_questions |
5 | Добавить в класс статическое свойство $n_students - счетчик объектов и метод show_students для вывода текущего количества объектов класса students. Добавить деструктор класса и модифицировать конструктор для учета числа объектов |
6 | Создать файл view_debts.php для работы с классом students, сделать загрузку с помощью __autoload |
7 | Создать несколько объектов класса, передав в конструктор различные значения параметров. Вывести информацию о студенте (show_info) для произвольного объекта |
8 | Создать копию $copy произвольного объекта. Вывести информацию show_info для $copy |
9 | Вызвать метод set_debts, а затем вывести долги конкретного студента с помощью show_debts |
10 | Создать класс child_students, наследующий класс students. Переопределить метод show_debts таким образом, чтобы при выводе $n_questions учитывались пропуски лекций по-болезни (пропущенная по-болезни лекция считается посещенной). Для этого добавьте в класс child_students свойство $n_reports и переопределите конструктор |
11 | С помощью final запретить перегрузку метода show_debts в классе students. Объяснить возникновение ошибки |
Критерии оценки работы
Задание оценивается в 8 баллов при условии соблюдения срока, определенного для данной лабораторной работы. При этом задание должно быть выполнено полностью, результат должен соответствовать требованиям задания, автор обязан понимать собственное решение. При несоблюдении сроков сдачи задания, базовый балл уменьшается вдвое каждую пару после срока.