Волшебные методы get, set (геттеры и сеттеры). Понятие о приватных свойствах.

Task 01

Создайте экземпляр класса Test. Присвойте через сеттер значение свойству testProp. Выведите в консоль созданный экземпляр. С помощью геттера получите значение свойства testProp. Выведите в консоль. Обратите внимание, что свойства testProp у нас нет. Есть приватное свойство _testProp, но используя геттер и сеттер мы для пользователя создаем видимость наличия свойства testProp.

Task 02

Усложним конструкцию геттера и сеттера - изучим класс Test2 и геттер и сеттер. Обратите внимание на метод - setTestProp - он содержит тот же код, что и сеттер. Итак, мы добавили проверку. Давайте создадим экземпляр класса Test2 и используя сеттер передадим ему парамет строку 'bbb', причем сделаем это так:


const test2 = new Test2();
console.log(test2.testProp = 'bbb');
console.log(test2);
 

Изучите что возвратил сеттер - ожидаемо, согласно коду, возвратил введенное число, все работает так, как мы ожидаем.

Повторим те же действия с пустой строкой:


console.log(test2.testProp = '');
console.log(test2);
 

Как видите, мы не знаем, что произошло. Ожидали false, но не получили его. И значение testProp осталось прежнее. Т.е. ветка false просто не сработала. И применяя такой метод нужно быть осторожным, напрямую его в проверке (допустим засунуть в if ) использовать нельзя.

Повторим то же с нашим методом:


console.log(test2.setTestProp(''));
console.log(test2);

Как видно, мы в явном виде получили false. Таким образом можно сделать вывод, что если не требуется делать проверок результат записи - то можно использовать сеттер, если нужно обрабатывать ввод и возвращать для проверки результат операции - то необходимо писать свой сеттер.

Task 03

Выведите в консоль с помощью геттера значение testProp.

Task 04

Создайте Test3 класс, и унаследуйтесь от Test2. Проверьте работоспособность сеттера и геттера в экземпляре класса Test3. Сделайте вывод, работают ли сеттер и геттер из Test2 в новом классе?

Task 05

Унаследуйтесь от Test2 и создайте новый класс Test4....

Завдання доступні після придбання курсу

Task 06

Допишите в Test4 класс геттер для свойства testValue,...

Завдання доступні після придбання курсу