Προηγουμένως είδαμε την διάκριση μεταξύ πεδίων με βάση τον προσδιοριστή πρόσβασης **public** και **private**. Σε αυτή την ενότητα θα δούμε συνολικά την χρήση των προσδιοριστών πρόσβασης.
Οι προσδιοριστές πρόσβασης εφαρμόζονται στα παρακάτω δύο επίπεδα, τα οποία θα δούμε στη συνέχεια αναλυτικά.
Όσον αφορά το επίπεδο της κλάσης οι προσδιοριστές πρόσβασης έχουν τρεις δυνατές τιμές
Όσον αφορά το επίπεδο των μελών της κλάσης εδώ έχουμε 4 επιλογές:
Ο παρακάτω πίνακας συμπυκνώνει την χρήση των προσδιοριστών πρόσβασης για τα μέλη μιας κλάσης
Προσδ.Πρόσβασης | Class | Package | Subclass in other package | Other package |
---|---|---|---|---|
public | Ναι | Ναι | Ναι | Ναι |
protected | Ναι | Ναι | Ναι | Όχι |
κανένας προσδιοριστής | Ναι | Ναι | Όχι | Όχι |
private | Ναι | Όχι | Όχι | Όχι |
Στην παρακάτω εικόνα δίνεται το παράδειγμα τεσσάρων κλάσεων που ανήκουν σε δύο διαφορετικά πακέτα Package One
και Package Two
. Στον πίνακα που ακολουθεί μπορείτε να δείτε την προσβασιμότητα των μελών της κλάσης Alpha
για κάθε μία τις τέσσερις κατηγορίες που αναφέρονται παραπάνω.
Προσδ.Πρόσβασης | Alpha | Beta | SubAlpha | Gamma |
---|---|---|---|---|
public | Ναι | Ναι | Ναι | Ναι |
protected | Ναι | Ναι | Ναι | Όχι |
κανένας προσδιοριστής | Ναι | Ναι | Όχι | Όχι |
private | Ναι | Όχι | Όχι | Όχι |
Μπορείτε να κατεβάσετε τον κώδικα που υλοποιεί το παραπάνω σχήμα κλάσεων και περιοριστών πρόσβασης access-modifiers.tgz. Προσπαθήστε να μεταγλωττίσετε ως εξής:
cd package_one javac ClassA.java javac ClassB.java -cp ../ cd package_two javac SubClassA.java -cp ../ javac ClassC.java -cp ../
Παρατηρήστε τα λάθη αναφορικά με τους προσδιοριστές πρόσβασης που σας βγάζει ο compiler.
Προηγούμενο: Χρήση κλάσεων από άλλες κλάσεις | Περιεχόμενα | Επόμενο: Κληρονομικότητα |