# Приватные свойства в ООП в JavaScript

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

Имена приватных свойств нужно начинать с символа `#`. Кроме того, такие свойства обязательно нужно объявить в начале кода класса. Давайте сделаем это:

`class User { #name; }`

Теперь запишем данные в наше свойство. Это можно сделать, например, в конструкторе класса:

`class User { #name; constructor(name) { this.#name = name; } }`

Сделаем теперь метод, который будет возвращать значение нашего свойства:

`class User { #name; constructor(name) { this.#name = name; } show() { return this.#name; } }`

Создадим объект класса, передав параметром имя юзера:

`let user = new User('john');`

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

`console.log(user.#name); // ошибка`

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

`console.log(user.show()); // выведет 'john'`

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

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

Сделайте метод, который выведет данные работника.

← →
↑