Ιδιωτικές Ιδιότητες στην ΑΟΠ στο JavaScript

Οι ιδιότητες ενός αντικειμένου που μπορούν να διαβαστούν και να γραφτούν από έξω, ονομάζονται δημόσιες (public). Υπάρχουν επίσης και ιδιωτικές (private) ιδιότητες, που θα είναι προσβάσιμες μόνο μέσα στην κλάση.

Τα ονόματα των ιδιωτικών ιδιοτήτων πρέπει να ξεκινούν με το σύμβολο #. Εκτός αυτού, τέτοιες ιδιότητες πρέπει υποχρεωτικά να δηλωθούν στην αρχή του κώδικα της κλάσης. Ας το κάνουμε αυτό:

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

Κάντε μια μέθοδο, που θα εμφανίζει τα δεδομένα του εργαζομένου.