La clase de clase es una implementación que define una clase específica en el idioma Java. Una definición de clase incluye variables de miembros, métodos miembros, interfaces implementadas por esta clase y clase principal de esta clase. El objeto de la clase de clase se usa para representar clases e interfaces en la aplicación Java que se ejecuta actualmente. Por ejemplo: cada matriz pertenece a un objeto de clase de clase, y todas las matrices con el mismo tipo de elemento y dimensión comparten un objeto de clase. Los tipos básicos de Java (booleano, byte, char, short, int, largo, flotante y doble) y los tipos de vacío también se pueden representar como objetos de clase.
El siguiente ejemplo usa un objeto de clase para mostrar el nombre de clase de un objeto:
void printClassName (object obj) {System.out.println ("La clase de" + obj + "es" + obj.getClass (). getName ()); }Todos sabemos que todas las clases de Java heredan la clase de objeto. Hay un método en la clase de objeto: getClass (). Este método se utiliza para obtener la referencia a la clase del objeto que ha sido instanciado. Esta referencia apunta al objeto de la clase de clase (jeje, es un poco incómodo). No podemos generar un objeto de clase (constructor privado), y el objeto de esta clase es creado automáticamente por la máquina virtual Java cuando se convierten en varias clases o se genera por el método definido en el cargador de clases. El objeto que generamos tendrá un campo para registrar la ubicación del objeto de la clase de clase. Como se muestra en la figura a continuación:
Podemos tratar cada objeto de clase como un proxy para muchas clases. Además, en cada objeto de clase, habrá un cargador de clase que registre la clase que hace referencia. Si este campo es nulo, significa que el cargador de la clase es un cargador de arranque. Por la razón específica, consulte el artículo "Mecanismo de trabajo de cargadores de clases" que compartí antes.
Sabemos que hay múltiples cargadores en Java, y cada cargador puede cargar múltiples clases, por lo que siempre que obtenga el objeto de clase de clase, puede usar su método getClassLoader () para obtener la referencia al cargador de clases.
JVM es un objeto de clase exclusivo de cada tipo de administrador. Por lo tanto, podemos usar el operador Biequal para comparar objetos: a1.getclass () == A.Class; El que debe devolverse es verdadero.
FORNAME (String ClassName) y FORNAME (StringClassName, { *} Boolean Initialze, *ClassLoader *Loader) *Métodos.
Este método devuelve el objeto de clase correspondiente con el nombre de cadena dado. Dado el nombre de ruta completo de una clase o interfaz, este método intenta localizar, cargar y conectar la clase. Si tiene éxito, devuelva el objeto de esta clase. De lo contrario, arroje una excepción de ClassNotFoundException. Por ejemplo, el siguiente fragmento de código devuelve un descriptor de clase en ejecución llamado java.lang.thread. Classst = class.forname ("java.lang.thread"); Este método requiere especificar el cargador de clase. Al usar el método FORNAME con solo un parámetro de cadena, el objeto de clase llamará al cargador de clase actual de forma predeterminada como el cargador y establecerá el segundo parámetro en verdadero. La segunda descripción del parámetro: si es falso, llamar al método FORNAME solo carga la clase en el cargador de clase de comando, y no inicializa el bloque estático de la clase. El bloque estático se llama solo cuando la clase se instancia por primera vez. Cuando es cierto, el bloque estático se llama cuando se carga.
getClassLoader ()
Obtenga el cargador de clase para esta clase.
getComponentType ()
Si la clase actual representa una matriz, devuelve el objeto de clase que representa el componente de la matriz, de lo contrario devuelve nulo.
getConstructor (clase [])
Devuelve el objeto infantil de constructor público especificado de la clase representada por el objeto de clase actual.
getConstructors ()
Devuelve una matriz de todos los subobjetos de constructor público de la clase representada por el objeto de clase actual.
getDeclaredConstructor (clase [])
Devuelve un subobjetivo de constructor especificado por la clase representada por el objeto de clase actual.
getDeclaredConstructors ()
Devuelve una matriz de todos los subobjetos de constructor establecidos de la clase representada por el objeto de clase actual.
getDeclaredfield (cadena)
Devuelve un objeto de dominio que se ha especificado para la clase o interfaz representada por el objeto de clase actual.
getDeclaredfields ()
Devuelve una matriz de todos los objetos de dominio establecidos para la clase o interfaz representada por el objeto de clase actual.
getDeclaredMethod (string, clase [])
Devuelve un objeto de método que se ha especificado para la clase o interfaz especificada representada por el objeto de clase actual.
getDeclaredMethods ()
Devuelve una matriz de todos los métodos establecidos para la clase o interfaz representada por el objeto de clase.
Getfield (cadena)
Devuelve el objeto de dominio de miembro público especificado de la clase o interfaz representada por el objeto de clase actual.
getFields ()
Devuelve una matriz de objetos de dominio público accesible para la clase o interfaz representada por el objeto de clase actual.
GetInterfaces ()
Devuelve la interfaz implementada por la clase representada por el objeto actual o la interfaz.
getMethod (cadena, clase [])
Devuelve el objeto de método de miembro público especificado de la clase o interfaz representada por el objeto de clase actual.
getMethods ()
Devuelve una matriz de todos los objetos del método de miembro público para la clase o interfaz representada por el objeto de clase actual, incluidos los declarados y heredados de la clase principal.
getModifiers ()
Devuelve el código del modificador de lenguaje Java para la clase o interfaz.
getName ()
Devuelve la cadena de nombre de ruta completa del tipo (clase, interfaz, matriz o tipo base) representada por el objeto de clase.
getResource (cadena)
Encuentre recursos por nombre especificado.
getResourceasstream (cadena)
Encuentra recursos con el nombre de pila.
getSigners ()
Obtenga la etiqueta de clase.
getSuperClass ()
Si este objeto representa cualquier clase, excepto el objeto, entonces se devuelve el objeto de clase principal de este objeto.
isarray ()
Devuelve verdadero si el objeto de clase representa una matriz, de lo contrario regresa falso.
isassignable de (clase)
Determina si la clase o interfaz representada por el objeto de clase es la misma que la clase o interfaz representada por la clase especificada por el parámetro, o es su clase principal.
ISInstance (objeto)
Este método es un método equivalente dinámico para el caso de las operaciones en el lenguaje Java.
ISInterface ()
Determina si el objeto de clase especificado representa un tipo de interfaz.
isPrimitivo ()
Determina si el objeto de clase especificado representa un tipo de base Java.
NewInstance ()
Crea una nueva instancia de la clase.
toString ()
Convierte un objeto en una cadena.
Resumir
Lo anterior es todo el contenido de este artículo sobre cómo discutir brevemente la clase de clase en Java, y espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!