This shows you the differences between two versions of the page.
|
java:access_modifiers [2017/02/03 13:25] gthanos [Προσδιοριστές Πρόσβασης στο επίπεδο της κλάσης] |
java:access_modifiers [2018/02/09 15:04] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Περιοριστές πρόσβασης - Access Modifiers ====== | ||
| - | |||
| - | ===== Ελέγχοντας την πρόσβαση άλλων κλάσεων στα μέλη της κλάσης ===== | ||
| - | |||
| - | Προηγουμένως είδαμε την [[java: | ||
| - | |||
| - | Οι προσδιοριστές πρόσβασης εφαρμόζονται στα παρακάτω δύο επίπεδα, | ||
| - | - στο επίπεδο της κλάσης | ||
| - | - στο επίπεδο των μελών της κλάσης, | ||
| - | |||
| - | ===== Προσδιοριστές Πρόσβασης στο επίπεδο της κλάσης ===== | ||
| - | |||
| - | Όσον αφορά το επίπεδο της κλάσης οι προσδιοριστές πρόσβασης έχουν τρεις δυνατές τιμές | ||
| - | - **public**: Η κλάση είναι ορατή από οποιαδήποτε άλλη κλάση στο ίδιο ή σε άλλο πακέτο. | ||
| - | - **package-private** (κανένας προσδιοριστής πρόσβασης): | ||
| - | - **protected**: | ||
| - | - **private**: | ||
| - | |||
| - | ===== Προσδιοριστές Πρόσβασης στο επίπεδο της των μελών της κλάσης ===== | ||
| - | |||
| - | Όσον αφορά το επίπεδο των μελών της κλάσης έχουμε τις εξής επιλογές: | ||
| - | - **public**: Τα μέλη της κλάσης είναι ορατά από οποιαδήποτε άλλη κλάση στο ίδιο ή σε άλλο πακέτο. | ||
| - | - **protected**: | ||
| - | - **package-private** (κανένας προσδιοριστής πρόσβασης): | ||
| - | - **private**: | ||
| - | |||
| - | Ο παρακάτω πίνακας συμπυκνώνει την χρήση των προσδιοριστών πρόσβασης για τα μέλη μιας κλάσης | ||
| - | |||
| - | ^ Προσδ.Πρόσβασης ^ Class ^ Package ^ Subclass in other package^ Other package ^ | ||
| - | | '' | ||
| - | | '' | ||
| - | | κανένας προσδιοριστής | ||
| - | | '' | ||
| - | |||
| - | * Η πρώτη στήλη του πίνακα δείχνει αν η ίδια η κλάση έχει πρόσβαση στα μέλη της. Αυτό ισχύει σε όλες τις περιπτώσεις. | ||
| - | * Η δεύτερη στήλη δείχνει αν μία κλάση που ανήκει στο ίδιο πακέτο με την εξεταζόμενη κλάση έχει πρόσβαση στα μέλη της κλάσης. | ||
| - | * Η τρίτη στήλη δείχνει αν μία υποκλάση της εξεταζόμενης κλάσης που βρίσκεται σε άλλο πακέτο έχει πρόσβαση στα μέλη της κλάσης. | ||
| - | * Η τέταρτη στήλη δείχνει αν μία κλάση που ανήκει σε άλλο πακέτο έχει πρόσβαση στα μέλη της κλάσης. | ||
| - | |||
| - | Στην παρακάτω εικόνα δίνεται το παράδειγμα τεσσάρων κλάσεων που ανήκουν σε δύο διαφορετικά πακέτα '' | ||
| - | |||
| - | |||
| - | {{ : | ||
| - | |||
| - | ^ Προσδ.Πρόσβασης για τα μέλη της κλάσης Alpha ^ Alpha ^ Beta ^ SubAlpha ^ Gamma ^ | ||
| - | | '' | ||
| - | | '' | ||
| - | | κανένας προσδιοριστής | ||
| - | | '' | ||
| - | |||
| - | Μπορείτε να κατεβάσετε τον κώδικα που υλοποιεί το παραπάνω σχήμα κλάσεων και περιοριστών πρόσβασης {{: | ||
| - | |||
| - | < | ||
| - | cd package_one | ||
| - | javac ClassA.java | ||
| - | javac ClassB.java -cp ../ | ||
| - | cd package_two | ||
| - | javac SubClassA.java -cp ../ | ||
| - | javac ClassC.java -cp ../ | ||
| - | </ | ||
| - | |||
| - | Παρατηρήστε τα λάθη αναφορικά με τους προσδιοριστές πρόσβασης που σας βγάζει ο compiler. | ||
| - | |||
| - | | Προηγούμενο: | ||
| - | |||