This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
|
java:access_modifiers [2015/02/05 16:32] gthanos [Προσδιοριστές Πρόσβασης στο επίπεδο της των μελών της κλάσης] |
java:access_modifiers [2016/02/26 11:15] 127.0.0.1 external edit |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Ελέγχοντας την πρόσβαση άλλων κλάσεων σε μέλη της κλάσης - Περιοριστές πρόσβασης ====== | + | ====== Περιοριστές πρόσβασης - Ελέγχοντας την πρόσβαση άλλων κλάσεων στα μέλη της κλάσης ====== |
| - | Προηγουμένως είδαμε την [[java:jar_files#Διάκριση μεταξύ πεδίων με τον προσδιοριστή πρόσβασης public και private | διάκριση μεταξύ πεδίων με βάση τον προσδιοριστή πρόσβασης **public** και **private**. Σε αυτή την ενότητα θα δούμε συνολικά την χρήση των προσδιοριστών πρόσβασης. | + | Προηγουμένως είδαμε την [[java:class_fields#Διάκριση μεταξύ πεδίων με τον προσδιοριστή πρόσβασης public και private | διάκριση μεταξύ πεδίων με βάση τον προσδιοριστή πρόσβασης **public** και **private**]]. Σε αυτή την ενότητα θα δούμε συνολικά την χρήση των προσδιοριστών πρόσβασης. |
| Οι προσδιοριστές πρόσβασης εφαρμόζονται στα παρακάτω δύο επίπεδα, τα οποία θα δούμε στη συνέχεια αναλυτικά. | Οι προσδιοριστές πρόσβασης εφαρμόζονται στα παρακάτω δύο επίπεδα, τα οποία θα δούμε στη συνέχεια αναλυτικά. | ||
| Line 17: | Line 17: | ||
| Όσον αφορά το επίπεδο των μελών της κλάσης εδώ έχουμε 4 επιλογές: | Όσον αφορά το επίπεδο των μελών της κλάσης εδώ έχουμε 4 επιλογές: | ||
| - **public**: Τα μέλη της κλάσης είναι ορατά από οποιαδήποτε άλλη κλάση στο ίδιο ή σε άλλο πακέτο. | - **public**: Τα μέλη της κλάσης είναι ορατά από οποιαδήποτε άλλη κλάση στο ίδιο ή σε άλλο πακέτο. | ||
| - | - **protected**: Τα μέλη της κλάσης είναι ορατά μόνο από κλάσεις που ανήκουν στο ίδιο πακέτο με την υφιστάμενη κλάση. | + | - **protected**: Τα μέλη της κλάσης είναι ορατά μόνο από κλάσεις που ανήκουν στο ίδιο πακέτο με την υφιστάμενη κλάση ή από υποκλάσεις της υφιστάμενης κλάσης που ανήκουν σε άλλα πακέτα. |
| - | - **package-private** (κανένας προσδιοριστής πρόσβασης): Τα μέλη της κλάσης είναι ορατά μόνο από κλάσεις που ανήκουν στο ίδιο πακέτο με την υφιστάμενη κλάση ή από υποκλάσεις της υφιστάμενης κλάσης που ανήκουν σε άλλα πακέτα. | + | - **package-private** (κανένας προσδιοριστής πρόσβασης): Τα μέλη της κλάσης είναι ορατά μόνο από κλάσεις που ανήκουν στο ίδιο πακέτο με την υφιστάμενη κλάση. |
| - **private**: Τα μέλη της κλάσης είναι ορατά μόνο από την συγκεκριμένη κλάση. | - **private**: Τα μέλη της κλάσης είναι ορατά μόνο από την συγκεκριμένη κλάση. | ||
| Line 37: | Line 37: | ||
| - | {{ :java:classes-access.gif?400 |}} | + | {{ :java:classes-access.gif?350 |}} |
| ^ Προσδ.Πρόσβασης ^ Alpha ^ Beta ^ SubAlpha ^ Gamma ^ | ^ Προσδ.Πρόσβασης ^ Alpha ^ Beta ^ SubAlpha ^ Gamma ^ | ||
| Line 45: | Line 45: | ||
| | ''private'' | Ναι | Όχι | Όχι | Όχι | | | ''private'' | Ναι | Όχι | Όχι | Όχι | | ||
| + | Μπορείτε να κατεβάσετε τον κώδικα που υλοποιεί το παραπάνω σχήμα κλάσεων και περιοριστών πρόσβασης {{:java:access-modifiers.tgz}}. Προσπαθήστε να μεταγλωττίσετε ως εξής: | ||
| + | <code> | ||
| + | cd package_one | ||
| + | javac ClassA.java | ||
| + | javac ClassB.java -cp ../ | ||
| + | cd package_two | ||
| + | javac SubClassA.java -cp ../ | ||
| + | javac ClassC.java -cp ../ | ||
| + | </code> | ||
| - | + | Παρατηρήστε τα λάθη αναφορικά με τους προσδιοριστές πρόσβασης που σας βγάζει ο compiler. | |