Sobes.tech
Junior — Middle

A classe interna em Java é privada para acesso de outras classes?

sobes.tech IA

Resposta da IA

A classe interna em Java não precisa necessariamente ser privada para ser acessível a partir de outras classes. O acesso à classe interna depende do modificador de acesso atribuído a ela (private, protected, public ou package-private). Por exemplo, se a classe interna for declarada como private, ela só será acessível dentro da classe externa. Se for declarada como public ou sem modificador (package-private), então também será acessível a partir de outras classes no mesmo pacote ou por importação.

Exemplo:

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

// De outra classe no mesmo pacote:
Outer.InnerPublic obj = new Outer().new InnerPublic(); // acesso permitido
// Outer.InnerPrivate obj2 = new Outer().new InnerPrivate(); // erro de compilação