Getter svojstava u OOP u JavaScriptu

Neka imamo sledeću klasu sa privatnim svojstvima:

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

Kao što vidite, ova svojstva se zadaju jednom prilikom kreiranja objekta. Međutim, trenutno ova svojstva je nemoguće pročitati, pošto su privatna i ne postoje odgovarajući metodi za to.

Hajde da napravimo za naša svojstva specijalne metode koje omogućavaju čitanje ovih svojstava. Takve metode (koje se nazivaju getter) treba da počinju sa rečju get, a zatim treba da ide naziv svojstva koje se čita.

Hajde da napravimo gettere za naša svojstva:

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

Hajde da proverimo njihov rad. Kreirajmo objekat, prosleđujući podatke korisnika kao parametar:

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

Pročitajmo ove podatke, koristeći gettere:

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

U klasi Employee napravite tri privatna svojstva: ime, platu i godine.

Задание 2

Prosledite kao parametar konstruktora vrednosti ovih svojstava.

Задание 3

Napravite gettere koji ispisuju vrednosti svakog od naših svojstava.