Геттеры свойств в ООП в JavaScript

Пусть у нас есть следующий класс с приватными свойствами:

javascriptclass User {
  #name;
  #surn;
  
  constructor(name, surn) {
    this.#name = name;
    this.#surn = surn;
  }
}

Как вы видите, эти свойства задаются один раз при создании объекта. Сейчас, однако, эти свойства невозможно прочитать, ведь они приватные и нет соответствующих методов для этого.

Давайте сделаем для наших свойств специальные методы, позволяющие прочитать эти свойства. Такие методы (их называют геттеры) должны начинаться со слова get, а затем должно идти название читаемого свойство.

Давайте сделаем геттеры наших свойств:

javascriptclass User {
  #name;
  #surn;
  
  constructor(name, surn) {
    this.#name = name;
    this.#surn = surn;
  }
  
  getName() {
    return this.#name;
  }
  
  getSurn() {
    return this.#surn;
  }
}

Давайте проверим их работу. Создадим объект, параметром передав данные юзера:

javascriptlet user = new User('john', 'smit');

Прочитаем эти данные, воспользовавшись геттерами:

javascriptconsole.log(user.getName());
console.log(user.getSurn());
Задание 1

В классе Employee сделайте три приватных свойства: имя, зарплату и возраст.

Задание 2

Передайте параметром конструктора значения этих свойств.

Задание 3

Сделайте геттеры, выводящие значения каждого из наших свойств.