Todo mundo sabe que o Java é uma linguagem de programação orientada a objetos. No mundo Java, tudo é um objeto. Como você representa um objeto nesse java? Aula
Sabemos que os objetos em Java são subclasses da classe de objeto, então hoje estudaremos o uso da classe em Java juntos.
Faça uma pequena pergunta: são objetos de aulas? De quem é o objetivo é a classe? A resposta é: a classe é um objeto, um objeto de força da classe java.lang.class.
pacote com.edu.hpu;
classe pública teste {public static void main (string [] args) {// instanciado um objeto de novo foo foo = new Foo (); // Obtenha a instância da classe de classe instantando o método getClass () da classe de objeto C1 = foo.getClass (); // qualquer classe possui uma classe estática implícita classe C2 = foo.class; // c1 e c2 representam o tipo de classe de classe foo (tipo de classe) system.out.println (c1 == c2); Classe C3 = NULL; tente {// o terceiro método para obter o tipo de classe da classe c3 = classe.ForName ("com.edu.hpu.foo"); } catch (classNotFoundException e) {e.printStackTrace (); } System.out.println (C1 == C3); tente {// crie um objeto de instância da classe através do tipo de classe foo c4 = (foo) c1.newInstance (); c4.start (); } catch (instantiationException e) {e.printStackTrace (); } catch (ilegalAccessException e) {E.PrintStackTrace (); }}} classe foo {public void start () {System.out.println ("foo class"); }}Através do código acima, você tem um entendimento mais profundo da classe? Podemos criar objetos de instância de classe através da nova palavra -chave e também podemos criar objetos de instância de classe através do tipo de classe. Existem três formas dos métodos acima para obter tipos de classe de classe. Eles só recebem um tipo de classe, então C1 == C2 == C3: true.
Após a breve introdução acima, você tem um entendimento mais profundo da classe em Java? Vamos usar um pequeno exemplo para introduzir o uso real de tipos de classe e instâncias de classe.
classe escritórios {public static void main (string [] args) {if ("word" .equals (args [0]) {word w = new word (); w.start (); } if ("Excel" .equals (args [0])) {Excel e = new Excel (); e.start (); }}}Vamos dar uma olhada no código acima. Quando compilamos, ele pode passar normalmente? Aqui precisamos falar sobre compilação e operação: a classe carregada no tempo de compilação é uma classe de carregamento estático; A classe carregada no tempo de execução é uma classe de carregamento dinâmico. Class.ForName ("Nome completo da classe L"); Não apenas representa o tipo de classe, mas também representa a classe de carregamento dinâmico. No exemplo acima, podemos não necessariamente usar o Word e o Excel, mas quando compilamos, se o Word e o Excel não existirem, ocorrerá um erro. Então, em seguida, implementamos a lógica acima carregando dinamicamente o tipo de classe.
classe Office {public static void main (string [] args) {try {class C = class.ForName (args [0]); OA OFERECIDADE = (OFERECIDADE) C.NEWINSTANCE (); OA.Write (); } catch (Exceção e) {e.printStackTrace ();}}} interface Oficial {public void write ();} classe Word implementa {public void write () {System.out.println ("word ... start ..."); }} classe Excel implementa {public void write () {System.out.println ("Excel..Write .."); }}Dessa forma, podemos adicionar dinamicamente classes conforme necessário, para facilitar a expansão das funções de nosso aplicativo.