Tout le monde sait que Java est un langage de programmation orienté objet. Dans le monde Java, tout est un objet. Comment représentez-vous un objet dans ce java? Classe
Nous savons que les objets en Java sont des sous-classes de la classe d'objets, donc aujourd'hui, nous étudierons ensemble l'utilisation de la classe en Java.
Posez une petite question: les classes sont-elles des objets? À qui est la classe? La réponse est: la classe est un objet, un objet de force de la classe java.lang.class.
package com.edu.hpu;
Public Class Test {public static void main (String [] args) {// instancier un objet par nouveau foo foo = new foo (); // Obtenez l'instance de classe de classe en instanciant la méthode getClass () de la classe d'objets c1 = foo.getClass (); // Toute classe a une classe de classe variable statique implicite c2 = foo.class; // C1 et C2 représentent le type de classe de la classe FOO (type de classe) System.out.println (C1 == C2); Classe C3 = null; essayez {// la troisième méthode pour obtenir le type de classe de la classe C3 = class.forname ("com.edu.hpu.foo"); } catch (classNotFoundException e) {e.printStackTrace (); } System.out.println (C1 == C3); Essayez {// Créez un objet d'instance de la classe via le type de classe foo c4 = (foo) c1.newinstance (); C4.Start (); } catch (InstantiationException e) {e.printStackTrace (); } catch (illégalaccessException e) {e.printStackTrace (); }}} classe foo {public void start () {System.out.println ("Foo class"); }}Grâce au code ci-dessus, avez-vous une compréhension plus profonde de la classe? Nous pouvons créer des objets d'instance de classe via le nouveau mot clé, et nous pouvons également créer des objets d'instance de classe via le type de classe. Il existe trois formes des méthodes ci-dessus pour obtenir des types de classe de classe. Ils n'obtiennent qu'un seul type de classe, donc C1 == C2 == C3: Vrai.
Après la brève introduction ci-dessus, avez-vous une compréhension plus profonde de la classe en Java? Utilisons un petit exemple pour introduire l'utilisation réelle des types de classe et des instances de classe.
Class offices {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 (); }}}Jetons un coup d'œil au code ci-dessus. Lorsque nous compilons, peut-il passer normalement? Ici, nous devons parler de compilation et de fonctionnement: la classe chargée au moment de la compilation est une classe de chargement statique; La classe chargée au moment de l'exécution est une classe de chargement dynamique. Class.forname ("Nom complet de la classe L"); représente non seulement le type de classe, mais représente également la classe de chargement dynamique. Dans l'exemple ci-dessus, nous ne pouvons pas nécessairement utiliser Word et Excel, mais lorsque nous compilons, si Word et Excel n'existent pas, une erreur se produira. Nous implémentons donc ensuite la logique ci-dessus en chargeant dynamiquement le type de classe.
classe Office {public static void main (String [] args) {try {class c = class.forname (args [0]); OA OFFICABLE = (OFFICIBLE) C.NEWINSTANCE (); oa.write (); } catch (exception e) {e.printStackTrace ();}}} Interface Officeable {public void write ();} class Word implémente Officable {public void write () {System.out.println ("word ... start ..."); }} classe Excel implémente Officable {public void write () {System.out.println ("Excel..Write .."); }}De cette façon, nous pouvons ajouter dynamiquement des classes au besoin, afin de faciliter l'expansion des fonctions de notre application.