TypeScript-да private модификатори

private модификатори класс ичидаги хусусиятлар ва методларга ташқаридан киришни чеклаш учун қўлланилади. Бу холда ҳатто ворис классларда ҳам бу хусусиятларга мурожаат қилиб бўлмайди.

Келгила, мисолда кўрамиз. User классида name private хусусиятини яратамиз:

typescriptclass User {
  private name: string;
  
  constructor(name: string) {
    this.name = name;
  }
}

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

typescriptlet user: User = new User('john');

Энди бу private хусусиятни класс ташқарисида ўқишга уриниш хатолик келтиради:

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

Шунингдек, класс ташқарисида бу хусусиятга қандайдир нарса ёзиш уриниши ҳам хатолик келтиради:

typescriptuser.name = 'eric'; // хатолик

Аммо класс методлари ичида биз private хусусиятмизни ҳам ўқиш, ҳам ўзгартириш имкониятига эгамиз:

typescriptclass User {
  private name: string;
  
  constructor(name: string) {
    this.name = name;
  }
  
  public getName() {
    return this.name; // хусусиятни ўқиш
  }
  
  public setName(name: string) {
    this.name = name; // хусусиятга янги қиймат берish
  }
}
Задание 1

User классни яратинг, унинг ичида исм ва ёш private хусусиятлари мавжуд бўлсин. Уларнинг бошланғич қийматлари конструктор орқали берилсин.

Задание 2

User классингизда getName ва getAge public методларини яратинг, улар мос private хусусиятларнинг кийматларини қайтарсин.

Задание 3

User классингизда setName ва setAge public методларини яратинг, улар мос private хусусиятларнинг кийматларини ўзгартира олсин.