JavaScript-ի ՕՕՊ-ում սետտերների և գետտերների առավելությունները

Նախորդ դասում մենք յուրաքանչյուր հատկության համար ստեղծեցինք գետտեր և սետտեր: Կարող է հարց առաջանալ՝ ինչու՞ են անհրաժեշտ այդպիսի բարդություններ, երբ փաստորեն նույն էֆեկտին կարելի է հասնել, եթե հատկությունները դարձնել հանրային, և ոչ թե մասնավոր:

Բանն այն է, որ գետտերներն ու սետտերները ունեն առավելություն. հատկությանը դիմելուց առաջ կարելի է կատարել որոշ ստուգումներ: Օրինակ, մեր դեպքում, երբ գրում ենք անունն ու ազգանունը, մենք կարող ենք ստուգել, որ նոր արժեքը դատարկ տող չէ.

javascriptclass User {
  #name;
  #surn;
  
  setName(name) {
    if (name.length > 0) {
      this.#name = name;
    } else {
      throw new Error('name is incorrect');
    }
  }
  setSurn(surn) {
    if (surn.length > 0) {
      this.#surn = surn;
    } else {
      throw new Error('surn is incorrect');
    }
  }
  
  getName() {
    return this.#name;
  }
  getSurn() {
    return this.#surn;
  }
}

Եկեք ստուգենք, թե ինչպես է սա աշխատում: Սկսենք՝ ստեղծելով դասի օբյեկտ.

javascriptlet user = new User;

Հիմա փորձենք գրել ճիշտ արժեք.

javascriptuser.setName('john');

Իսկ հիմա փորձենք գրել սխալ արժեք.

javascriptuser.setName(''); // սխալ
Задание 1

Employee դասում տարիքի սետտերում կատարեք ստուգում, որ տարիքը պետք է լինի 0-ից 120 միջակայքում:

Задание 2

Employee դասում աշխատավարձի գետտերում կատարեք այնպես, որ աշխատավարձը կարդալիս դրա արժեքի վերջում ավելացվի դոլարի նշան: