Privátne vlastnosti v OOP v JavaScripte

Vlastnosti objektu, ktoré je možné čítať a zapisovať zvonku, sa nazývajú verejné. Existujú aj privátne vlastnosti, ktoré budú prístupné len vnútri triedy.

Mená privátnych vlastností treba začať symbolom #. Okrem toho takéto vlastnosti musíme deklarovať na začiatku kódu triedy. Urobme to:

javascriptclass User {
  #name;
}

Teraz zapíšme dáta do našej vlastnosti. To môžeme urobiť napríklad v konštruktore triedy:

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

Urobme teraz metódu, ktorá bude vracať hodnotu našej vlastnosti:

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

Vytvorme objekt triedy, odovzdaním mena používateľa ako parameter:

javascriptlet user = new User('john');

Pokus o priamy prístup k našej vlastnosti mimo triedy spôsobí chybu:

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

A volanie našej metódy umožní prečítať túto vlastnosť:

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

V triede Employee vytvorte tri privátne vlastnosti: meno, plat a vek.

Задание 2

Odovzdajte parametrom konštruktora hodnoty týchto vlastností.

Задание 3

Vytvorte metódu, ktorá vypíše údaje zamestnanca.