JavaPOOintermediario

Classe interna

Em sistemas reais, muitas vezes uma classe só faz sentido dentro de outra — como uma transação dentro de uma conta bancária. A classe interna (inner class) permite agrupar logicamente essas entidades, melhorando a encapsulação e reduzindo a poluição de nomes. Em frameworks como Swing e JavaFX, listeners são frequentemente implementados como classes internas anônimas ou regulares.

O PROBLEMA

Banco com classe interna Conta. Gerencie contas.

EXEMPLO

Banco.Conta conta = banco.new Conta()

SOBRE O CONCEITO

Uma classe interna em Java é declarada dentro de outra classe e tem acesso aos membros (inclusive privados) da classe externa. Para instanciar uma classe interna, é necessário ter uma referência à classe externa, por exemplo: Banco.Conta conta = banco.new Conta(). O erro comum é tentar criar a classe interna sem essa referência externa, como new Conta() fora do contexto de um objeto Banco — isso falha porque a classe interna depende de uma instância da externa para acessar seus atributos e métodos. A classe interna também mantém uma referência implícita à instância externa, o que pode causar memory leaks se não for tratado com cuidado. Use static class para evitar essa dependência, mas isso é proibido aqui por questão didática.

RESOLUÇÃO

Mais exercícios de POO

JAP004 · BásicoMétodo com retornoJAP005 · BásicoMúltiplos objetosJAP011 · IntermediárioHerança simplesJAP002 · BásicoConstrutor
Ver todos os exercícios de Java