Final y estático

Anonim

En matemáticas y ciencias, la constante es un término que denota un cierto valor como "π", que es un nombre práctico para el número 3.14159. Java tiene su tipo de constantes. Estas son variables que bajo (a) no pertenecen a ningún objeto y sub (b) no cambian su valor una vez que están establecidas. La palabra estática en la declaración de variable muestra que la variable no pertenece a ningún objeto. Hay una palabra clave similar que dice que el valor de la variable solo se establecerá una vez y no cambiará. Esta es la palabra clave final. Esta palabra clave no se limita a variables estáticas, sino que se puede usar con variables de instancia, variables locales e incluso con variables que son métodos de parámetros. Al declarar la variable como final, le muestra a todos que la variable durante la existencia tendrá el mismo valor. Más importante aún, el compilador detectará cada intento de cambiar el valor de una variable declarada y lo informará como un error. En cuanto a la terminología de Java, la variable que se declara como estática y final se llama constante.

¿Qué es final?

El modificador final se puede utilizar en varios lugares en el lenguaje de programación Java. Aquí cubriremos su uso más común. El modificador final se puede aplicar a la declaración de una variable local, argumento de función y variables miembro no estáticas o estáticas. En este contexto, el modificador variable se convierte en una constante. El traductor del idioma de traducción verificará si algún código intenta modificar el valor, y dichos intentos se marcarán como un error. Aquí hay un ejemplo.

valor int final = 17;

Las variables miembro estáticas con este modificador se utilizan como constantes globales; por ejemplo, en la variable java.lang.Math PI, se indica exactamente

final estática pública doble PI = 3.14159265358979323846;

Podemos aplicar el modificador final a la declaración de función. La función marcada con la final ya no se puede anular, es decir, su implementación final. Los métodos abstractos no se pueden declarar definitivos; el hecho de que sean abstractos significa que carecen de implementación; Ciertamente no puede ser su estado último. Aquí hay un ejemplo.

final pública int meaningLife () {

vuelta 42;

}

Podemos aplicar el modificador final a la declaración de clase. La clase marcada con la final ya no se puede heredar, es decir, su implementación final. Claramente, la clase abstracta no puede ser final al mismo tiempo. Aquí hay un ejemplo

clase final pública Cerrada {

// …

}

Uno de los ejemplos de clase finita es la clase java.lang.String: es finita para que nadie pueda heredarla y, por lo tanto, obtener acceso a sus variables miembro.

¿Qué es la estática?

Las variables estáticas no pertenecen a una instancia particular de la clase. Las variables estáticas pertenecen a la clase en sí y en la memoria solo hay una ubicación, independientemente del número de copias de esa clase que se crean en la memoria. Las variables no estáticas pertenecen a especímenes de clase: cada instancia de la clase tiene su propia copia de dichas variables. Las variables estáticas pertenecen a la clase: la clase en la memoria mantiene los valores de dichas variables; por lo tanto, todas las clases de muestra ven el mismo contenido para que podamos considerar las variables estáticas que se compartirán entre todos los tamaños de clase. Al actualizar la variable de valor, el nuevo valor estará automáticamente visible para todas las instancias de esa clase. El filtro estático se puede aplicar a cualquier elemento legalmente declarado dentro de una clase. En el caso de las variables de pertenencia, la consecuencia es que dichas variables miembro se almacenarán en la memoria solo en un lugar. ¿Qué pasa si es un método? Al declarar el método como estático, el mensaje es el mismo: el método relevante no pertenece a las clases de clases, sino a la clase en sí. En consecuencia, los métodos estáticos no recibirán una referencia oculta al objeto sobre el que se invoca en la llamada; en métodos de referencia estática esto no está disponible. De hecho, invocar métodos estáticos a través del objeto es igual de confuso que acceder a variables miembro estáticas al referirse a esta referencia: en ambos casos, es mejor simplemente escribir el nombre de la clase, el punto y el nombre del método de llamada.

Diferencia entre final y estática

  1. Variable

Estático representa una variable que es común a todos los objetos que instancian una clase dada, mientras que final define la constante.

  1. Método

Estático es un método que es el mismo para cada clase dada de objeto, también se llama miembro de clase, por ejemplo. tal es el método principal. El método final no puede ser procesado en la clase heredada.

  1. Clase

La final no se puede expandir, es decir, no permite subclases. La estática no se aplica a la clase.

  1. Valor

En pocas palabras, final denota que el valor no se puede cambiar (anular). El valor estático se establece en su valor predeterminado, pero se puede reinicializar.

Final vs. Estático: Cuadro de comparación

Resumen de final y estático

  • El trabajo clave estático proporciona acceso incluso cuando no hay ningún objeto (instancia). Las clases prominentes se declaran a través de la palabra clave estática. Si no desea que el valor de algunos cambios más adelante en el programa vaya, o si desea que el compilador verifique y prohíba, puede cambiar esa promesa a la final. Hay un bloque estático para la inicialización. El bloque estático para la inicialización se declara como la clave estática delante de los corchetes.Este tipo de bloque se realiza una vez, durante las lecturas de las clases, y generalmente inicializa los miembros estáticos de la clase.