Junior — Middle
Kas Java sisemine klass on suletud teiste klasside juurdepääsuks?
sobes.tech AI
Vastus AI-lt
Java siseklass ei ole tingimata privaatne, et oleks teiste klasside poolt ligipääsetav. Ligipääs siseklassile sõltub sellest, millist juurdepääsuklassi modifikaatorit sellele on määratud (private, protected, public või package-private). Näiteks, kui siseklass on deklareeritud kui private, on see kättesaadav ainult välise klassi sees. Kui see on deklareeritud kui public või ilma modifikaatorita (package-private), on see samuti kättesaadav teistest klassidest samas paketis või importimise kaudu.
Näide:
public class Outer {
private class InnerPrivate {}
public class InnerPublic {}
}
// Teise klassi poolt samas paketis:
Outer.InnerPublic obj = new Outer().new InnerPublic(); // lubatud juurdepääs
// Outer.InnerPrivate obj2 = new Outer().new InnerPrivate(); // kompileerimisviga