JavaScript да ООПда Хусусий хусусиятлар

Объектнинг ташқаридан ўқиш ва ёзиш мумкин бўлган хусусиятлар оммавий деб аталади. Шунингдек, фақат класс ичидагина дастур бўладиган хусусий хусусиятлар ҳам мавжуд.

Хусусий хусусиятларнинг номлари # белгисидан бошланиши керак. Бундан ташқари, бундай хусусиятларни альбатта класс кодининг бошланиш жойида эълон қилиш керак. Келинг, буни амалга оширамиз:

javascriptclass User {
  #name;
}

Энди маълумотларни бизнинг хусусиятга ёзайлик. Буни, масалан, класснинг конструкторида бажариш мумкин:

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

Энди бизнинг хусусиятнинг қийматини қайтарадиган метод ясайлик:

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

Класс объектини яратамиз, унга фойдаланувчи исмини параметр сифатида ўткамиз:

javascriptlet user = new User('john');

Бизнинг хусусиятга класс ташқарисида бевосита мурожаат қилиш уриниши хатоликка олиб келади:

javascriptconsole.log(user.#name); // хатолик

Бизнинг методни чақириш эса бу хусусиятни ўқиш имконини беради:

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

Employee классинда учта хусусий хусусият ясангиз: исм, маош ва ёш.

Задание 2

Конструкторга параметр сифатида бу хусусиятларнинг қийматларини ўткангиз.

Задание 3

Ишчи ҳақида маълумотларни чиқарувчи метод ясангиз.