JavaScript-dä OOP-de goragly usullary

Şahsy usullary miras alynmaýar we klassdan daşarda görünmeýär. Emma käwagt, miras alynýan, ýöne klassdan daşarda görünmeýän usullar gerek bolar. Beýle usullara goragly (protected) usullar diýilýär. JavaScript, gynansagam, beýle usullary goldamaýar.

Şonuň üçin men beýle usullary döretmäge mümkinçilik berýän bir şertnamany hasyl etmegi hödürleýärin. Beýle usullaryň atlaryny aşak sızgy bilen başlarys. Aslynda biz öňki kabul edilen ýapyk usullar baradaky şertnamany ulanarys. Diňe şeýle usullary miras alynýandygyny görkezmek üçin goragly diýip atlandyrarys, ýöne olary daşardan ulanarys. Emma, aslynda, köne şertnama boýunça hem şeýle ulanylýar.

Şeýlelik bilen, goragly usuly bolan ata-klas ýazalyň:

javascriptclass User {
  setName(name) {
    this.name = name;
  }
  getName() {
    return this._capeFirst(this.name);
  }
  
  _capeFirst(str) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

Bu goragly usuldan weli-klasda peýdalanyň:

javascriptclass Student extends User {
  setSurn(surn) {
    this.surn = surn;
  }
  getSurn() {
    return this._capeFirst(this.surn);
  }
}
Задание 1

Aşakdaky kodda kömekçi usuly goragly ediň:

javascriptclass User {
  setName(name) {
    if (this.notEmpty(name)) {
      this.name = name;
    }
  }
  getName() {
    return this.name;
  }
  
  notEmpty(str) {
    return str.length > 0;
  }
}
class Employee extends User {
  setSurn(surn) {
    if (this.notEmpty(surn)) {
      this.surn = surn;
    }
  }
  getSurn() {
    return this.surn;
  }
}