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. Опишіть процес створення класу та метод для виведення інформації з нього.

Tags: