Τροποποιητές ορατότητας Kotlin

Σε αυτό το άρθρο, θα μάθετε για όλους τους 4 τροποποιητές ορατότητας στο Kotlin και πώς λειτουργούν σε διαφορετικά σενάρια.

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

Στο άρθρο της τάξης και αντικειμένων Kotlin, μάθατε για τους τροποποιητές ορατότητας publicκαι privateεν συντομία. Θα μάθετε για δύο ακόμη τροποποιητές ορατότητας protectedκαι internal(καθώς και publicκαι private) λεπτομερώς.

Τροποποιητές ορατότητας μέσα στο πακέτο

Ένα πακέτο οργανώνει ένα σύνολο σχετικών λειτουργιών, ιδιοτήτων και τάξεων, αντικειμένων και διεπαφών. Προτεινόμενη ανάγνωση: Πακέτα Kotlin

Τροποποιητής Περιγραφή
δημόσιο οι δηλώσεις είναι ορατές παντού
ιδιωτικός ορατό μέσα στο αρχείο που περιέχει τη δήλωση
εσωτερικός ορατό μέσα στην ίδια ενότητα (ένα σύνολο αρχείων Kotlin που έχουν συγκεντρωθεί)
προστατευμένο δεν διατίθεται για πακέτα (χρησιμοποιείται για υποκατηγορίες)

Σημείωση: Εάν δεν έχει οριστεί τροποποιητής ορατότητας, είναι publicαπό προεπιλογή.

Ας πάρουμε ένα παράδειγμα:

 // όνομα αρχείου: hello.kt πακέτο δοκιμής fun function1 () () // δημόσια από προεπιλογή και ορατή παντού ιδιωτική συνάρτηση fun2 () () // ορατή μέσα hello.kt εσωτερική συνάρτηση fun3 () () // ορατή μέσα στο ίδια ενότητα var name = "Foo" // ορατό παντού get () = πεδίο // ορατό μέσα hello.kt (ίδιο με την ιδιότητά του) ιδιωτικό σετ (τιμή) (// ορατό μέσα hello.kt πεδίο = τιμή) ιδιωτική κλάση class1 () // ορατό μέσα hello.kt

Τροποποιητές Ορατότητας Μέσα Μαθήματα και Διεπαφές

Δείτε πώς λειτουργεί ο τροποποιητής ορατότητας για μέλη (συναρτήσεις, ιδιότητες) που δηλώνονται σε μια τάξη:

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

Σημείωση: Εάν παρακάμψετε ένα protectedμέλος στην παράγωγη κλάση χωρίς να καθορίσετε την ορατότητά του, η ορατότητά του θα είναι επίσης protected.

Ας πάρουμε ένα παράδειγμα:

 ανοιχτή κλάση βάσης () (var a = 1 // δημόσια από προεπιλογή ιδιωτική var b = 2 // ιδιωτική προς βασική κλάση προστατευμένη ανοιχτή val c = 3 // ορατή στη βάση και την παράγωγη κλάση εσωτερική β = 4 // ορατή μέσα στην ίδια ενότητα προστατευμένη διασκέδαση e () () // ορατή στην κατηγορία Base και Derived class) Derived: Base () (// a, c, d και e () της κατηγορίας Base είναι ορατά // b δεν είναι ορατή παράκαμψη val c = 9 // c προστατεύεται) fun main (args: Array) (val base = Base () // base.a και base.d είναι ορατά // base.b, base.c και base .e () δεν είναι ορατά val deriv = = Προέρχεται () // deriv.c δεν είναι ορατό) 

Αλλαγή ορατότητας ενός κατασκευαστή

Από προεπιλογή, η ορατότητα ενός κατασκευαστή είναι public. Ωστόσο, μπορείτε να το αλλάξετε. Για αυτό, πρέπει να προσθέσετε ρητά τη constructorλέξη-κλειδί.

Ο κατασκευαστής είναι publicαπό προεπιλογή στο παρακάτω παράδειγμα:

 δοκιμή κλάσης (val a: Int) (// κωδικός) 

Δείτε πώς μπορείτε να αλλάξετε την ορατότητά του.

 class Δοκιμή ιδιωτικός κατασκευαστής (val a: Int) (// κωδικός)

Εδώ είναι ο κατασκευαστής private.

Σημείωση: Στο Kotlin, οι τοπικές συναρτήσεις, μεταβλητές και τάξεις δεν μπορούν να έχουν τροποποιητές ορατότητας.

ενδιαφέροντα άρθρα...