13. Об'єктно-орієнтоване програмування, частина 4
Первинні вкладки
Модифікуйте попередню програму наступним чином: якщо при створенні об'єкту відсутнє якесь поле, то перед об'єктом виводиться попередження.
1. Модифікуйте клас __construct для Users(допишіть текст після оголошення класу): використовуйте винятки( exception):
1 2 3 4 5 6 7 8 9 10 11 12 13 | try { // початок конструкції try if($name == "") // перевірка імені throw new Exception("нет имени"); // присвоєння тексту повідомлення else if($login=="") // перевірка логіну throw new Exception("нет логина"); else if($password=="") // паролю throw new Exception("нет пароля"); $this->name = $name; // перевизначення змінних $this->login = $login; $this->password = $password; }catch(Exception $e){ // якщо є помилка echo $e->getMessage(); // виведення повідомлення з текстом помилки } |
2. Таким же чином модифікуйте __construct для SuperUsers:
1 2 3 4 5 6 | try { if($character == "") throw new Exception("назначьте роль"); } catch(Exception $e){ echo $e->getMessage(); } |
3. При виведенні об'єктів навмисно не пишіть деякі дані:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $user1 = new Users("", "vas", "123"); $user1->getInfo(); $user2 = new Users("Petya", "", "321"); $user2->getInfo(); $user3 = new Users("Vova", "vov", ""); $user3->getInfo(); $user4 = clone $user3; $user4->getInfo(); $usera = new SuperUsers("Admin", "root", "admin1234", "admin"); $usera->getInfo(); $userb = new SuperUsers("Moderator", "moder", "mod134", ""); $userb->getInfo(); |
4. Результат:
Контрольні питання:
1. Як ви розумієте конструкцію try-catch?
2. Чому необхідно модифікувати обидва класи?
3. Опишіть процес створення класу та метод для виведення інформації з нього.