Yksityiset ominaisuudet OOP:ssa JavaScriptissä

Oliominaisuudet, joita voidaan lukea ja kirjoittaa ulkopuolelta, kutsutaan julkisiksi. On olemassa myös yksityisiä ominaisuuksia, jotka ovat saatavilla vain luokan sisällä.

Yksityisten ominaisuuksien nimet tulee alkaa merkillä #. Lisäksi tällaiset ominaisuudet on pakko esitellä luokan koodin alussa. Tehdään se:

javascriptclass User {
  #name;
}

Kirjoitetaan nyt dataa ominaisuuteemme. Se voidaan tehdä esimerkiksi luokan konstruktorissa:

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

Tehdään nyt metodi, joka palauttaa ominaisuutemme arvon:

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

Luodaan luokan olio, lähettämällä parametrina käyttäjän nimi:

javascriptlet user = new User('john');

Yritys viitata suoraan ominaisuuteemme luokan ulkopuolella johtaa virheeseen:

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

Ja metodimme kutsuminen sallii ominaisuuden lukemisen:

javascriptconsole.log(user.show()); // tulostaa 'john'
Задание 1

Luokassa Employee tee kolme yksityistä ominaisuutta: nimi, palkka ja ikä.

Задание 2

Lähetä konstruktorin parametrina näiden ominaisuuksien arvot.

Задание 3

Tee metodi, joka tulostaa työntekijän tiedot.