Privátní vlastnosti v OOP v JavaScriptu

Vlastnosti objektu, které lze číst a zapisovat zvenčí, se nazývají veřejné. Existují také privátní vlastnosti, které budou přístupné pouze uvnitř třídy.

Názvy privátních vlastností je třeba začínat symbolem #. Kromě toho je nutné takové vlastnosti deklarovat na začátku kódu třídy. Pojďme to udělat:

javascriptclass User {
  #name;
}

Nyní zapišme data do naší vlastnosti. To lze provést například v konstruktoru třídy:

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

Vytvořme nyní metodu, která bude vracet hodnotu naší vlastnosti:

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

Vytvořme objekt třídy, předáním jména uživatele jako parametr:

javascriptlet user = new User('john');

Pokus o přímý přístup k naší vlastnosti mimo třídu povede k chybě:

javascriptconsole.log(user.#name); // chyba

A volání naší metody umožní přečíst tuto vlastnost:

javascriptconsole.log(user.show()); // vypíše 'john'
Задание 1

Ve třídě Employee vytvořte tři privátní vlastnosti: jméno, plat a věk.

Задание 2

Předejte parametrem konstruktoru hodnoty těchto vlastností.

Задание 3

Vytvořte metodu, která vypíše data zaměstnance.