JavaScript-də OOP-də Private Xüsusiyyətlər

Obyektin kənardan oxumaq və yazmaq olunan xüsusiyyətləri public adlanır. Həmçinin private xüsusiyyətlər də var ki, onlar yalnız klasın daxilində əlçatan olacaq.

Private xüsusiyyətlərin adları # simvolu ilə başlamalıdır. Bundan əlavə, belə xüsusiyyətlər mütləq klas kodunun əvvəlində elan edilməlidir. Gəlin bunu edək:

javascriptclass User {
  #name;
}

İndi bizim xüsusiyyətimizə məlumat yazaq. Bu, məsələn, klasın konstruktorunda edilə bilər:

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

İndi bizim xüsusiyyətimizin dəyərini qaytaracaq bir metod edək:

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

Klasın obyektini yaradaq, parametr olaraq istifadəçi adını ötürək:

javascriptlet user = new User('john');

Birbaşa olaraq klasın xaricində bizim xüsusiyyətimizə müraciət etməyə cəhd xətaya səbəb olacaq:

javascriptconsole.log(user.#name); // xəta

Bizim metodumuzun çağırılması isə bu xüsusiyyəti oxumağa imkan verəcək:

javascriptconsole.log(user.show()); // 'john' çap edəcək
Задание 1

Employee klasında üç private xüsusiyyət edin: ad, maaş və yaş.

Задание 2

Bu xüsusiyyətlərin dəyərlərini konstruktora parametr kimi ötürün.

Задание 3

İşçinin məlumatlarını çap edəcək bir metod edin.