Este artigo apresenta principalmente a classificação e generalização da classe de idiomas Java (explicação detalhada). Esta informação registra a classe de cada objeto. A máquina virtual geralmente usa o método correto de executar as informações de tipo a ser executado. A classe de classe encapsula um estado e o estado da interface está em execução.
Para colocar claramente:
A classe de classe também é uma classe, mas o nome é semelhante ao da palavra -chave da classe. Java é uma linguagem sensível.
O conteúdo da classe é o tipo de informação da classe que você criou.
Os objetos da classe Classe não podem ser criados de maneira nova () como uma classe comum.
O papel da classe é fornecer ou obter uma informação de tipo que forneça ou obtenha um determinado objeto durante o tempo de execução, que é semelhante à função typeId () em C ++. Esta informação também pode ser usada para reflexão.
1. Princípio da classe da classe
Todos sabemos que todas as classes Java herdam a classe de objeto. Classe de aula. Não podemos gerar um objeto de classe (o construtor é privado), e o objeto desta classe é criar automaticamente o objeto de classe pela máquina virtual Java quando é transferida, ou é gerado pelo método DefinClass no carregador. Os objetos que geramos terão um campo para registrar a localização do objeto do objeto na classe de classe do objeto. Como mostrado na figura abaixo:
2. Obtenha um objeto de classe
O primeiro método é a função forname da classe
Copie o código do código da seguinte forma:
classe pública Shapes {}
Classe obj = classe.ForName ("Shapes");
O segundo método é usar o objeto do objeto do objeto
Copie o código do código da seguinte forma:
classe pública Shapes {}
formas S1 = new Shapes ();
Classe obj = s1.getclass ();
Classe obj1 = s1.getsuperclass ();
O terceiro método é usar o tipo de tipo constante
Copie o código do código da seguinte forma:
Classe obj = string.class;
Classe obj1 = int.class;
Observe que, ao usar esse método para gerar o objeto de classe, a JVM não carregará automaticamente a classe (como a string). Outros métodos farão com que a JVM inicialize esta classe.
3. Use o objeto da classe para gerar uma instância da classe de destino
Instância imprecisa do objeto
Depois de obter um objeto da classe, você pode usar a função NewInstance () para gerar uma instância da classe de destino. No entanto, essa função não gera diretamente instâncias da classe de destino e só pode gerar instâncias da classe de objeto
Copie o código do código da seguinte forma:
Classe obj = classe.ForName ("Shapes");
Objeto shapesInsinStance = obj.newInstance ();
Use a classe de generalização para fazer referência à instância de destino do tipo de correia do tipo
Copie o código do código da seguinte forma:
Classe <Shapes> obj = shapes.class;
formas newshape = obj.newInstance ();
Devido ao limite de tipo, a referência do objeto à sintaxe da classe de generalização não pode ser direcionada para outras categorias.
Copie o código do código da seguinte forma:
Classe obj1 = int.class;
Classe <Teger> obj2 = int.class;
obj1 = duplo.class;
//Obj2=double.class;
Essa linha de código é ilegal.
Copie o código do código da seguinte forma:
Classe <?
obj = número.class;
obj = duplo.class;
Portanto, o objeto de classe gerado abaixo pode apontar para qualquer classe.
Copie o código do código da seguinte forma:
Classe <?> Obj = int.class;
obj = duplo.class;
obj = shapes.class;
O último uso estranho é que, quando você usa essa sintaxe genérica para construir um objeto de classe base de um objeto de uma classe que você tem em mãos, você deve usar a seguinte gramática especial
Copie o código do código da seguinte forma:
classe pública Shapes {}
Classe Round estende formas {}
Classe <nd> rclass = redond.class;
Classe <?
// classe <Shapes> sclass = rclass.getSuperclass ();
Você precisa observar aqui que você sabe que a classe base de rodada é de formas, mas você não pode declarar diretamente a classe <Shapes>
A introdução do conteúdo acima é o conteúdo inteiro do método de classificação da classe de idiomas Java (explicação detalhada).