Sobes.tech
Middle

O que é uma classe local e quais são as suas características?

sobes.tech IA

Resposta da IA

Uma classe local é uma classe definida dentro de um bloco, por exemplo, um método, construtor ou inicializador.

Características das classes locais:

  • Escopo: Disponível apenas no bloco onde é definida.
  • Não estática: Não pode ser declarada como static.
  • Acesso a variáveis locais: Pode acessar variáveis locais e parâmetros do bloco envolvente que sejam final ou efetivamente final.
  • Não pode ter modificadores de acesso: public, private, protected não podem ser usados.
  • Herda de classes e implementa interfaces: Pode estender outras classes e implementar interfaces.
  • Nomenclatura: Não pode conter o modificador strictfp e não pode ser declarada como enum.

Exemplo:

class Outer {
    void myMethod() {
        int localVar = 10; // efetivamente final

        class LocalClass {
            void display() {
                System.out.println("Variável local: " + localVar);
            }
        }

        LocalClass local = new LocalClass();
        local.display();
    }

    public static void main(String[] args) {
        Outer outer = new Outer();
        outer.myMethod();
    }
}