Junior — Middle
Είναι η εσωτερική κλάση σε Java κλειστή για πρόσβαση από άλλες κλάσεις;
sobes.tech AI
Απάντηση από AI
Η εσωτερική κλάση σε Java δεν χρειάζεται απαραίτητα να είναι ιδιωτική για να είναι προσβάσιμη από άλλες κλάσεις. Η πρόσβαση στην εσωτερική κλάση εξαρτάται από τον τροποποιητή πρόσβασης που της έχει δοθεί (private, protected, public ή package-private). Για παράδειγμα, αν η εσωτερική κλάση δηλωθεί ως private, είναι προσβάσιμη μόνο μέσα στην εξωτερική κλάση. Αν δηλωθεί ως public ή χωρίς τροποποιητή (package-private), τότε είναι επίσης προσβάσιμη από άλλες κλάσεις στο ίδιο πακέτο ή μέσω εισαγωγής.
Παράδειγμα:
public class Outer {
private class InnerPrivate {}
public class InnerPublic {}
}
// Από άλλη κλάση στο ίδιο πακέτο:
Outer.InnerPublic obj = new Outer().new InnerPublic(); // επιτρέπεται η πρόσβαση
// Outer.InnerPrivate obj2 = new Outer().new InnerPrivate(); // σφάλμα μεταγλώττισης