Final literalmente significa "último, final". Este significado también se expresa en Java.
Final se puede utilizar para modificar variables (incluidos los atributos de clase, los atributos del objeto, las variables locales y los parámetros formales), los métodos (incluidos los métodos de clase y los métodos de objetos) y las clases.
1. Clase de modificación final:
La clase de modificación final significa que esta clase ya ha tenido el significado "último, final". Por lo tanto, las clases modificadas con final no pueden ser heredadas, es decir, no pueden tener sus propias subclases.
Si la vista hereda una clase que se ha modificado con final, puede ocurrir un error durante la compilación.
2. Método de modificación final:
El método de modificación final significa que este método ya tiene el significado "último, final", es decir, este método no puede reescribirse (se pueden sobrecargar múltiples métodos de modificación final).
Una cosa a tener en cuenta aquí es que el requisito previo para la sobrescribencia es que la subclase puede heredar este método desde la clase principal, si el método modificado final en la clase principal también tiene permisos de control de acceso privado,
Este método no puede ser heredado directamente de la subclase. Por lo tanto, el mismo nombre y parámetros del método se puede definir en la subclase en este momento. En este momento, no habrá contradicción entre la reescritura y la final.
Se han redefinido nuevos métodos en subclases.
La clase pública B extiende una {public static void main (String [] args) {} public void getName () {}} clase A { /*** Debido a la modificación privada, este método no puede heredarse en la subclase. Por lo tanto, el método GetName en la subclase se redefine, * pertenece a la subclase en sí, y la compilación es normal */private final void getName () {}/ * Debido a la modificación PBLIC, la subclase puede heredar este método, lo que resulta en la reescritura del método final de la clase principal, y el error de compilación de Void Final GetName () {{}/}/}/}3. Variables de modificación final:
La variable modificada final significa que esta variable tiene el significado "último, final". Una vez que la variable final se define e inicializa por primera vez, el valor de la variable modificado final no se puede cambiar.
Aquí hay algunos problemas a tener en cuenta:
1. Variables modificadas finales, ya sean atributos de clase, atributos de objetos, parámetros formales o variables locales, estas variables deben mostrarse inicializadas (es decir, especifique el valor inicial para su pantalla).
Para los parámetros formales modificados por final, es fácil de entender porque se transmiten por parámetros reales.
Para las variables locales modificadas por final, lo mismo que las variables que no se modifican por final, deben mostrar la inicialización. Es decir, las variables locales deben inicializarse.
Para los atributos de clase general y los atributos del objeto, se puede ver desde el proceso de inicialización de clase y objeto que la inicialización predeterminada se realiza primero. Luego, las variables con asignaciones mostradas se inicializan nuevamente.
Sin embargo, para los atributos de clase y los atributos del objeto modificados por final, si no se muestra la inicialización, el valor predeterminado será el valor de inicialización predeterminado, que contradice el punto de partida de la final misma. Por lo tanto, la sintaxis de Java estipula:
Los atributos de clase y los atributos variables modificados por final deben mostrarse e inicializarse asignados.
Además, ya sea para tipos de datos básicos o tipos de datos de referencia, las variables modificadas finales se muestran por primera vez y no se pueden modificar después de la inicialización. Es fácil de entender para los tipos de datos básicos. Como referencia
Tipo de datos, variables de referencia apuntan al objeto real, pero almacenan la dirección del objeto que apunta. Por lo tanto, su valor no se puede modificar no significa que el objeto señalado no pueda modificarse.
4. Problemas de "reemplazo macro"/"variable macro" causados por la modificación final
En Java, las variables macro/reemplazo macro se refieren al hecho de que en el código Java, algunas variables pueden ser reemplazadas directamente por sus propios valores durante el período de compilación y compiladas en el archivo .class. Por lo tanto, este cambio ya no existe en el archivo .class compilado.
En las variables de la cadena de tipo, a veces las siguientes situaciones a menudo se encuentran:
prueba de clase pública {public static void main (string [] args) {string country = "China"; Name de cadena = "qqyumidi"; Cadena userInfo = país + nombre; // Después de la compilación, el país y las variables de nombre todavía están aquí, String user = "China" + "Qqyumidi"; // Después de la compilación, se convierte en Chinaqqyumidi directamente}}En la línea 9 del código anterior, el resultado de la variable compilada es directamente Chinaqqyumidi. En la línea 8, dado que el país y el nombre son variables ordinarias, el compilador no puede determinar directamente el valor de UserInfo en el momento de la compilación, por lo tanto.
El resultado después de la compilación aquí no es directamente Chinaqqyumidi.
Sin embargo, si desea que el código en la línea 8 se represente directamente como Chinaqqyumidi durante el período de compilación, debe usar el modificador final para modificar el país y las variables de nombre.
Razón: la variable modificada por el modificador final puede determinar directamente su valor durante el período de compilación debido a sus propias características, y este valor es inmutable. Durante el proceso de compilación, sus variables se pueden convertir directamente en sus valores para la representación.
Prueba de clase pública {public static void main (string [] args) {final string country = "China"; Nombre de cadena final = "Qqyumidi"; Cadena userInfo = país + nombre; // Después de la compilación, es directamente chianqqyumidi}}Lo anterior es el contenido completo de los puntos de conocimiento del modificador final de Java (artículo de lectura imprescindible) que el editor le aporta. Espero que sea útil para usted y apoye a Wulin.com más ~