User Tools

Site Tools


java:access_modifiers

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
java:access_modifiers [2017/01/30 13:49] – [Περιοριστές πρόσβασης - Ελέγχοντας την πρόσβαση άλλων κλάσεων στα μέλη της κλάσης] gthanosjava:access_modifiers [2018/02/09 15:04] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Περιοριστές πρόσβασης (Access Modifiers====== +====== Περιοριστές πρόσβασης Access Modifiers ====== 
  
 ===== Ελέγχοντας την πρόσβαση άλλων κλάσεων στα μέλη της κλάσης =====  ===== Ελέγχοντας την πρόσβαση άλλων κλάσεων στα μέλη της κλάσης ===== 
Line 14: Line 14:
   - **public**: Η κλάση είναι ορατή από οποιαδήποτε άλλη κλάση στο ίδιο ή σε άλλο πακέτο.   - **public**: Η κλάση είναι ορατή από οποιαδήποτε άλλη κλάση στο ίδιο ή σε άλλο πακέτο.
   - **package-private** (κανένας προσδιοριστής πρόσβασης): Σε αυτή την περίπτωση η κλάση είναι ορατή μόνο από κλάσεις που ανήκουν στο ίδιο πακέτο με την υφιστάμενη κλάση.   - **package-private** (κανένας προσδιοριστής πρόσβασης): Σε αυτή την περίπτωση η κλάση είναι ορατή μόνο από κλάσεις που ανήκουν στο ίδιο πακέτο με την υφιστάμενη κλάση.
-  - **private**: Μόνο για [[ :java:inner_classes | εσωτερικές κλάσεις ]]. Η κλάση είναι ορατή μόνο από την κλάση στην οποία περικλείεται. + 
 +Για τις [[java:inner_classes|εσωτερικές κλάσεις]] οι δυνατοί προσδιοριστές πρόσβασης είναι περισσότεροι και θα τους δούμε [[java:inner_class_access_from_outside|παρακάτω]]. 
 ===== Προσδιοριστές Πρόσβασης στο επίπεδο της των μελών της κλάσης ===== ===== Προσδιοριστές Πρόσβασης στο επίπεδο της των μελών της κλάσης =====
  
-Όσον αφορά το επίπεδο των μελών της κλάσης εδώ έχουμε επιλογές:+Όσον αφορά το επίπεδο των μελών της κλάσης έχουμε τις εξής επιλογές:
   - **public**: Τα μέλη της κλάσης είναι ορατά από οποιαδήποτε άλλη κλάση στο ίδιο ή σε άλλο πακέτο.   - **public**: Τα μέλη της κλάσης είναι ορατά από οποιαδήποτε άλλη κλάση στο ίδιο ή σε άλλο πακέτο.
   - **protected**: Τα μέλη της κλάσης είναι ορατά μόνο από κλάσεις που ανήκουν στο ίδιο πακέτο με την υφιστάμενη κλάση ή από υποκλάσεις της υφιστάμενης κλάσης που ανήκουν στο ίδιο ή σε άλλα πακέτα.   - **protected**: Τα μέλη της κλάσης είναι ορατά μόνο από κλάσεις που ανήκουν στο ίδιο πακέτο με την υφιστάμενη κλάση ή από υποκλάσεις της υφιστάμενης κλάσης που ανήκουν στο ίδιο ή σε άλλα πακέτα.
-  - **package-private** (κανένας προσδιοριστής πρόσβασης): Τα μέλη της κλάσης είναι ορατά μόνο από κλάσεις που ανήκουν στο ίδιο πακέτο με την υφιστάμενη κλάση.+  - **package-private** (κανένας προσδιοριστής πρόσβασης): Τα μέλη της κλάσης είναι ορατά μόνο από κλάσεις που ανήκουν στο ίδιο πακέτο με την υφιστάμενη κλάση. Δεν είναι ορατά από κλάσεις ή υποκλάσεις που ανήκουν σε άλλα πακέτα.
   - **private**: Τα μέλη της κλάσης είναι ορατά μόνο από την συγκεκριμένη κλάση.   - **private**: Τα μέλη της κλάσης είναι ορατά μόνο από την συγκεκριμένη κλάση.
  
 Ο παρακάτω πίνακας συμπυκνώνει την χρήση των προσδιοριστών πρόσβασης για τα μέλη μιας κλάσης Ο παρακάτω πίνακας συμπυκνώνει την χρήση των προσδιοριστών πρόσβασης για τα μέλη μιας κλάσης
  
-^ Προσδ.Πρόσβασης ^ Class ^ Package ^ Subclass in other package^ Other package ^ +^ Προσδ.Πρόσβασης ^ Class ^ Other class in same package ^ Subclass in other package^ Class in other package ^ 
-| ''public''  | Ναι | Ναι | Ναι | Ναι | +| ''public''  Ναι   Ναι   Ναι   Ναι  
-| ''protected''  | Ναι | Ναι | Ναι | Όχι | +| ''protected''  Ναι   Ναι   Ναι   Όχι  
-| κανένας προσδιοριστής  | Ναι | Ναι | Όχι | Όχι | +| κανένας προσδιοριστής  Ναι   Ναι   Όχι   Όχι  
-| ''private''  | Ναι | Όχι | Όχι | Όχι |+| ''private''   Ναι   Όχι   Όχι   Όχι  |
  
-  * Η πρώτη στήλη του πίνακα δείχνει αν η ίδια η κλάση έχει πρόσβαση στα μέλη της. Αυτό ισχύει σε όλες τις περιπτώσεις.  +  * Η δεύτερη στήλη του πίνακα δείχνει αν η ίδια η κλάση έχει πρόσβαση στα μέλη της. Αυτό ισχύει σε όλες τις περιπτώσεις.  
-  * Η δεύτερη στήλη δείχνει αν μία κλάση που ανήκει στο ίδιο πακέτο με την εξεταζόμενη κλάση έχει πρόσβαση στα μέλη της κλάσης. +  * Η τρίτη στήλη δείχνει αν μία κλάση που ανήκει στο ίδιο πακέτο με την εξεταζόμενη κλάση έχει πρόσβαση στα μέλη της κλάσης. 
-  * Η τρίτη στήλη δείχνει αν μία υποκλάση της εξεταζόμενης κλάσης που βρίσκεται σε άλλο πακέτο έχει πρόσβαση στα μέλη της κλάσης. +  * Η τέταρτη στήλη δείχνει αν μία υποκλάση της εξεταζόμενης κλάσης που βρίσκεται σε άλλο πακέτο έχει πρόσβαση στα μέλη της κλάσης. 
-  * Η τέταρτη στήλη δείχνει αν μία κλάση που ανήκει σε άλλο πακέτο έχει πρόσβαση στα μέλη της κλάσης.+  * Η πέμπτη στήλη δείχνει αν μία κλάση που ανήκει σε άλλο πακέτο έχει πρόσβαση στα μέλη της κλάσης.
  
 Στην παρακάτω εικόνα δίνεται το παράδειγμα τεσσάρων κλάσεων που ανήκουν σε δύο διαφορετικά πακέτα ''Package One'' και ''Package Two''. Στον πίνακα που ακολουθεί μπορείτε να δείτε την προσβασιμότητα των μελών της κλάσης ''Alpha'' για κάθε μία τις τέσσερις κατηγορίες που αναφέρονται παραπάνω. Στην παρακάτω εικόνα δίνεται το παράδειγμα τεσσάρων κλάσεων που ανήκουν σε δύο διαφορετικά πακέτα ''Package One'' και ''Package Two''. Στον πίνακα που ακολουθεί μπορείτε να δείτε την προσβασιμότητα των μελών της κλάσης ''Alpha'' για κάθε μία τις τέσσερις κατηγορίες που αναφέρονται παραπάνω.
- 
  
 {{ :java:classes-access.gif?350 |}} {{ :java:classes-access.gif?350 |}}
Line 60: Line 61:
 Παρατηρήστε τα λάθη αναφορικά με τους προσδιοριστές πρόσβασης που σας βγάζει ο compiler. Παρατηρήστε τα λάθη αναφορικά με τους προσδιοριστές πρόσβασης που σας βγάζει ο compiler.
  
-| Προηγούμενο: [[ :java:interfaces  Διεπαφές ]]  | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:inheritance | Κληρονομικότητα]] |+| Προηγούμενο: [[ :java:ant  Αυτόματη μεταγλώττιση με χρήση Apache Ant ]]  | [[ :toc | Περιεχόμενα ]] | Επόμενο: [[ :java:inheritance | Κληρονομικότητα]] |
  
  
java/access_modifiers.1485784162.txt.gz · Last modified: 2017/01/30 13:49 by gthanos