Este artículo presenta principalmente la clasificación y generalización de la clase de idioma Java (explicación detallada). Esta información registra la clase de cada objeto. La máquina virtual generalmente utiliza el método correcto para ejecutar la información de tipo que se ejecutará. La clase de clase encapsula un estado y el estado de la interfaz se está ejecutando.
Para decirlo claramente:
La clase de clase también es una clase, pero el nombre es similar al de la palabra clave de clase. Java es un lenguaje sensible.
El contenido de la clase de clase es el tipo de información de la clase que creó.
Los objetos de la clase de clase no se pueden crear de manera nueva () como una clase ordinaria.
El papel de la clase de clase es proporcionar u obtener una información de tipo que proporcione u obtenga un cierto objeto durante el tiempo de ejecución, que es similar a la función typeId () en C ++. Esta información también se puede utilizar para la reflexión.
1. Principio de clase de clase
Todos sabemos que todas las clases de Java heredan la clase de objeto. Clase de clase. No podemos generar un objeto de clase (el constructor es privado), y el objeto de esta clase de clase es crear automáticamente el objeto de clase mediante la máquina virtual Java cuando se transfiere, o es generado por el método Defineclass en el cargador. Los objetos que generamos tendrán un campo para registrar la ubicación del objeto del objeto en la clase de clase del objeto. Como se muestra en la figura a continuación:
2. Obtenga un objeto de clase de clase
El primer método es la función fórica de la clase de clase
Copiar código del código de la siguiente manera:
Formas de clase pública {}
Clase obj = class.forname ("formas");
El segundo método es usar el objeto del objeto del objeto
Copiar código del código de la siguiente manera:
Formas de clase pública {}
formas s1 = nuevas formas ();
Clase obj = s1.getClass ();
Clase obj1 = s1.getSuperClass ();
El tercer método es usar el tipo de tipo constante
Copiar código del código de la siguiente manera:
Clase obj = string.class;
Clase obj1 = int.class;
Tenga en cuenta que al usar este método para generar el objeto de clase de clase, JVM no cargará automáticamente la clase (como la cadena). Otros métodos harán que JVM inicialice esta clase.
3. Use el objeto de la clase de clase para generar una instancia de la clase de destino
Instancia de objeto inexacta
Después de obtener un objeto de la clase de clase, puede usar la función NewInStance () para generar una instancia de la clase de destino. Sin embargo, esta función no genera directamente instancias de la clase de destino y solo puede generar instancias de la clase de objeto
Copiar código del código de la siguiente manera:
Clase obj = class.forname ("formas");
Object FormeSinstance = obj.newinstance ();
Use la clase de generalización para hacer referencia a la instancia de destino del tipo de cinturón tipo
Copiar código del código de la siguiente manera:
Clase <panes> obj = formas.class;
formas newsHape = obj.newinstance ();
Debido al límite de tipo, la referencia de objeto a la sintaxis de la clase de generalización no puede dirigirse a otras categorías.
Copiar código del código de la siguiente manera:
Clase obj1 = int.class;
Clase <integer> obj2 = int.class;
obj1 = double.class;
//Obj2=double.class;
Esta línea de código es ilegal.
Copiar código del código de la siguiente manera:
Clase <? Extensa número> obj = int.class;
obj = número.class;
obj = double.class;
Por lo tanto, el objeto de clase generado a continuación puede apuntar a cualquier clase.
Copiar código del código de la siguiente manera:
Clase <?> Obj = int.class;
obj = double.class;
obj = formas.class;
El último uso extraño es que cuando usa esta sintaxis genérica para construir un objeto de clase base de un objeto de una clase de clase que tiene a mano, debe usar la siguiente gramática especial
Copiar código del código de la siguiente manera:
Formas de clase pública {}
La ronda de la clase extiende las formas {}
Clase <rand> rclass = ronda.class;
Clase <??
// class <bormes> sclass = rclass.getSuperClass ();
Debe tener en cuenta aquí que la clase base de la ronda es de forma, pero no puede declarar directamente la clase <panes>.
La introducción del contenido anterior es el contenido completo del método de clasificación de clase Java y la generalización (explicación detallada).