⊗tsSpOpAMPr 10 of 37 menu

Ο τροποποιητής private στο TypeScript

Ο τροποποιητής private εφαρμόζεται σε περιπτώσεις όπου χρειάζεται να απαγορευτεί η πρόσβαση σε ιδιότητες και μεθόδους από έξω από την κλάση. Σε αυτή την περίπτωση, ακόμα και σε κλάσεις-απόγονους δεν θα είναι δυνατή η πρόσβαση σε αυτές τις ιδιότητες.

Ας δούμε ένα παράδειγμα. Ας φτιάξουμε στην κλάση User μια ιδιωτική ιδιότητα name:

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

Ας δημιουργήσουμε ένα αντικείμενο της κλάσης, περνώντας στον constructor την τιμή της ιδιότητάς μας:

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

Τώρα, μια προσπάθεια ανάγνωσης αυτής της ιδιωτικής ιδιότητας έξω από την κλάση θα οδηγήσει σε σφάλμα:

console.log(user.name); // σφάλμα

Επίσης, σε σφάλμα θα οδηγήσει και μια προσπάθεια εγγραφής κάτι σε αυτή την ιδιότητα από έξω από την κλάση:

user.name = 'eric'; // σφάλμα

Ωστόσο, μέσα σε μεθόδους της κλάσης θα είναι δυνατό τόσο η ανάγνωση, όσο και η αλλαγή της τιμής της ιδιωτικής μας ιδιότητας:

class User { private name: string; constructor(name: string) { this.name = name; } public getName() { return this.name; // διαβάζουμε την ιδιότητα } public setName(name: string) { this.name = name; // γράφουμε νέα τιμή στην ιδιότητα } }

Φτιάξτε μια κλάση User, που να περιέχει ιδιωτικές ιδιότητες με όνομα και ηλικία. Έστω ότι οι αρχικές τους τιμές ορίζονται μέσω του constructor.

Στην κλάση User σας φτιάξτε δημόσιες μεθόδους getName και getAge, που να επιτρέπουν την απόκτηση των τιμών των αντίστοιχων ιδιωτικών ιδιοτήτων.

Στην κλάση User σας φτιάξτε δημόσιες μεθόδους setName και setAge, που να επιτρέπουν την αλλαγή των τιμών των αντίστοιχων ιδιωτικών ιδιοτήτων.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη