Sobes.tech
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