This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
java:nested_classes [2015/04/29 03:44] gthanos [Τα είδη των εμφωλευμένων κλάσεων] |
java:nested_classes [2017/05/12 14:43] gthanos [Τα είδη των εμφωλευμένων κλάσεων] |
||
---|---|---|---|
Line 19: | Line 19: | ||
* Όπως θα δούμε παρακάτω οι εμφωλευμένες κλάσεις έχουν πρόσβαση στα πεδία και τις μεθόδους της εξωτερικής τους κλάσης και αντίστροφά η εξωτερική κλάση έχει πρόσβαση στα πεδία και τις μεθόδους της εμφωλευμένης κλάσης ανεξάρτητα από τους προσδιορισστές πρόσβασης που θα οριστούν για την εσωτερική κλάση ή τα πεδία και τις μεθόδους της εξωτερικής κλάσης. Το παραπάνω δίνει την δυνατότητα να ορίσουμε εμφωλευμένες κλάσεις ως **private** κλάσεις, οι οποίες είναι προσβάσιμες από την εξωτερική κλάση, αλλά όχι από άλλες κλάσεις στο ίδιο ή σε άλλο πακέτο. Με αυτό τον τρόπο η απόκρυψη της πληροφορίας είναι απόλυτη. | * Όπως θα δούμε παρακάτω οι εμφωλευμένες κλάσεις έχουν πρόσβαση στα πεδία και τις μεθόδους της εξωτερικής τους κλάσης και αντίστροφά η εξωτερική κλάση έχει πρόσβαση στα πεδία και τις μεθόδους της εμφωλευμένης κλάσης ανεξάρτητα από τους προσδιορισστές πρόσβασης που θα οριστούν για την εσωτερική κλάση ή τα πεδία και τις μεθόδους της εξωτερικής κλάσης. Το παραπάνω δίνει την δυνατότητα να ορίσουμε εμφωλευμένες κλάσεις ως **private** κλάσεις, οι οποίες είναι προσβάσιμες από την εξωτερική κλάση, αλλά όχι από άλλες κλάσεις στο ίδιο ή σε άλλο πακέτο. Με αυτό τον τρόπο η απόκρυψη της πληροφορίας είναι απόλυτη. | ||
- | <WRAP note 80% center round> Οι εμφωλευμένες κλάσεις χρησιμοποιούνται ιδιαιτέρως για την δημιουργία παραθυρικών εφαρμογών (Graphical User Interfaces) με χρήση Swing. | + | <WRAP info 80% center round> Οι εμφωλευμένες κλάσεις χρησιμοποιούνται ιδιαιτέρως για την δημιουργία παραθυρικών εφαρμογών (Graphical User Interfaces) με χρήση Swing. |
</WRAP> | </WRAP> | ||
===== Τα είδη των εμφωλευμένων κλάσεων ===== | ===== Τα είδη των εμφωλευμένων κλάσεων ===== | ||
- | Οι εμφωλευμένες κλάσεις μπορούν να χωριστούν στις εξής κατηγορίες. | + | |
<code> | <code> | ||
Line 42: | Line 42: | ||
</code> | </code> | ||
- | * **Στατικές εμφωλευμένες κλάσεις:** Στατικές εμφωλευμένες κλάσεις | + | Οι εμφωλευμένες κλάσεις μπορούν να χωριστούν στις εξής κατηγορίες. |
+ | |||
* **Μη-στατικές εμφωλευμένες κλάσεις:** | * **Μη-στατικές εμφωλευμένες κλάσεις:** | ||
* **Εσωτερικές κλάσεις:** | * **Εσωτερικές κλάσεις:** | ||
- | * **Τοπικές εμφωλευμένες κλάσεις** | + | * **Τοπικές εμφωλευμένες κλάσεις** (δεν θα μας απασχολήσουν) |
* **Ανωνυμές εμφωλευμένες κλάσεις** | * **Ανωνυμές εμφωλευμένες κλάσεις** | ||
+ | * **Στατικές εμφωλευμένες κλάσεις:** (δεν θα μας απασχολήσουν) | ||
- | + | |Προηγούμενο: [[ :java:collections_intro| Collections ]] | Επόμενο: [[ :java:inner_classes | Μη στατικές εμφωλευμένες κλάσεις ]]| | |
- | + | ||
- | + | ||