Sobes.tech
Junior — Middle

Vai iekšējā klase Java ir slēgta piekļuvei no citām klasēm?

sobes.tech AI

Atbilde no AI

Iekšējā klase Java nav obligāti jābūt privātai, lai būtu pieejama no citām klasēm. Piekļuve iekšējai klasei ir atkarīga no piekļuves modifikatora, kas tai ir piešķirts (private, protected, public vai package-private). Piemēram, ja iekšējā klase ir deklarēta kā private, tā ir pieejama tikai ārējās klases ietvaros. Ja tā ir deklarēta kā public vai bez modifikatora (package-private), tā ir pieejama arī no citām klasēm tajā pašā paketē vai ar importu.

Piemērs:

public class Outer {
    private class InnerPrivate {}
    public class InnerPublic {}
}

// No citas klases tajā pašā paketē:
Outer.InnerPublic obj = new Outer().new InnerPublic(); // pieejas atļauts
// Outer.InnerPrivate obj2 = new Outer().new InnerPrivate(); // kompilācijas kļūda