Este artigo descreve o mecanismo de criação e gancho dos objetos de classe interna Java. Compartilhe -o para sua referência, como segue:
Embora as classes internas em Java sejam completamente independentes de suas classes periféricas nas informações do estado (ela pode executar diretamente suas funções por meio de instâncias de classe interna), os objetos de classe periférica são a base para a existência de objetos de classe interna.
Ao gerar objetos de classe interna, é necessário garantir que eles possam ter objetos de classe periférica para conectar, para que o Java forneça uma sintaxe estrita para gerar objetos de classe interna.
Existem dois métodos que geralmente são usados para gerar objetos de classe interna.
Método1: Método padrão usando a classe periférica Instância.Now Nome da classe interna ().
Exemplo 1:
public class Outer {int não; classe IMPLEMENTES INTERNO INTERFACEA {}} Interface interfacea {} main () {externo Instancea = new Outer (); interfacea interfacea = Instancea.new INNER (); // Preste atenção ao método de gerar instâncias de classe interna, nova instância de classe peripheral. Nome da classe interna (). O objetivo disso é garantir que a instância da classe interna deve ter o gancho de instância da classe periférica.Interfacea interfaceB = Instancea.new Outer (); // Outra instância da classe interna é gerada e também está anexada à instância da instância. }Método2 : Use o método da fábrica para retornar diretamente um objeto que implementa uma determinada interface (o objeto geralmente é uma classe interna).
Exemplo 1:
public class Outer {int não; classe IMPLEMENTES INTERNO INTERFACEA {} public interfacea createInnerInstance {return interfacea {read (); }}} interface interfacea {public void read ();} main () {externo Instancea = new Outer (); interfacea interfacea = Instancea.createInnerInstance (); // observa o método gerado pela instância da classe interna, chama diretamente um método de fábrica e retorna um objeto que implementa o interface interface. Interfacea interfaceB = Instancea.createInnerInstance (); // Uma nova instância da classe interna é gerada e também está anexada à instância da instância. }Comparado à maneira de usar o nome da instância .New Classe Name (), o método da fábrica parece mais elegante e claro.
! Preste atenção ao cenário de uso de classes internas. Geralmente, é devolver um objeto de classe interna que implementa uma determinada função de interface para o exterior e execute operações correspondentes. (Como os membros da classe periférica são totalmente visíveis para a classe interna, sua conveniência e vantagens são muito óbvias)
Como o compilador captura automaticamente as informações da instância da classe periférica quando o objeto da classe interna é gerado, o Java também fornece um. Este método para chamar as instâncias de classe periférica de volta (esse método às vezes é muito importante).
Exemplo:
Public classe externa {classe interna {public Outer CallBorn () {return Outer.This} // Método de retorno de chamada () Retorna uma referência ao objeto de classe periférica do gancho de objeto da classe interna, usando o nome da classe periférica da sintaxe. }}For more Java-related content, readers who are interested in this site can view the topics: "Introduction and Advanced Tutorial on Java Object-Oriented Programming", "Tutorial on Java Data Structure and Algorithm", "Summary of Java Operation DOM Node Skills", "Summary of Java File and Directory Operation Skills" and "Summary of Java Cache Operation Skills"
Espero que este artigo seja útil para a programação Java de todos.