Diferencia entre estática y final en Java

Autor: Laura McKinney
Fecha De Creación: 2 Abril 2021
Fecha De Actualización: 15 Mayo 2024
Anonim
Diferencia entre estática y final en Java - Tecnología
Diferencia entre estática y final en Java - Tecnología

Contenido


Estática y final, ambas son las palabras clave utilizadas en Java. Se puede acceder al miembro estático antes de crear el objeto de clase. Final tiene un efecto diferente cuando se aplica a clases, métodos y variables. La principal diferencia entre una palabra clave estática y final es que estático Esta palabra clave se usa para definir el miembro de la clase que se puede usar independientemente de cualquier objeto de esa clase. Final La palabra clave se utiliza para declarar, una variable constante, un método que no se puede anular y una clase que no se puede heredar.

  1. Cuadro comparativo
  2. Definición
  3. Diferencias clave
  4. Conclusión

Cuadro comparativo

Bases para la comparaciónEstáticoFinal
AplicableLa palabra clave estática es aplicable a la clase estática anidada, variables, métodos y bloque.La palabra clave final es aplicable a la clase, métodos y variables.
InicializaciónNo es obligatorio inicializar la variable estática en el momento de su declaración.Es obligatorio inicializar la variable final en el momento de su declaración.
ModificaciónLa variable estática se puede reinicializar.La variable final no se puede reinicializar.
MétodosLos métodos estáticos solo pueden acceder a los miembros estáticos de la clase, y solo pueden ser llamados por otros métodos estáticos.Los métodos finales no pueden ser heredados.
ClaseEl objeto de clases estáticas no se puede crear y solo contiene miembros estáticos.Una clase final no puede ser heredada por ninguna clase.
BloquearEl bloque estático se usa para inicializar las variables estáticas.La palabra clave final no admite dicho bloque.


Definición de estática

Estática es una palabra clave, aplicable a las clases, variables, métodos y bloques. Los miembros de la clase, la clase y los bloques pueden hacerse estáticos usando la palabra clave "estática" delante del nombre de los miembros de la clase, clase y bloques respectivamente. Cuando un miembro de la clase se declara como estático, se vuelve global para todos los demás miembros de la clase. El miembro estático de la clase no ocupa memoria por instancia, es decir, todos los objetos comparten la misma copia del miembro estático. El miembro estático se puede usar independientemente de cualquier objeto de esa clase. Puede acceder al miembro estático de la clase antes de crear su objeto. El mejor ejemplo del miembro estático es el método main (), se declara estático para que se pueda invocar antes de que exista cualquier objeto. La forma general para acceder al miembro estático de la clase:


class_name.static_member // accediendo al miembro estático de la clase

En el código anterior, class_name es el nombre de la clase en la que está definido static_member. El miembro estático puede ser una variable estática o un método estático.

Variables estáticas:

  • Una variable estática actúa como una variable global para todos los demás miembros de datos de la clase.
  • Se puede acceder a una variable estática antes de que exista cualquier objeto de la clase.
  • Se puede acceder a una variable estática con el nombre de la clase en la que se define seguido del operador de punto (.).

Métodos Estáticos:

  • Un método estático solo puede llamar a otros métodos estáticos solamente.
  • Un método estático solo puede acceder a datos estáticos.
  • Un método estático no puede ser referido a "esto" o "super" en ninguna condición.
  • Se puede acceder a un método estático con el nombre de la clase en la que se define seguido del operador de punto (.).

Clase estática:

  • Java tiene el concepto de clase estática anidada. La clase más externa no puede hacerse estática, mientras que la clase más interna puede hacerse estática.
  • Una clase anidada estática no puede acceder al miembro no estático de la clase externa.
  • Solo puede acceder a los miembros estáticos de la clase externa.

Bloque estático:

El bloque estático se ejecuta solo una vez cuando se carga la clase. Se usa para inicializar las variables estáticas de la clase.

C ++:

En C ++ tenemos el concepto de variables estáticas, así como funciones estáticas, mientras que C ++ no admite clases estáticas.

DO#:

C # admite clases estáticas, variables estáticas y clases estáticas también.

Java:

Java admite clases anidadas estáticas, variables estáticas, métodos estáticos.

Definición de final

Final es una palabra clave aplicable a la clase, variable y métodos. La clase, la variable y el método se declaran como finales utilizando la palabra clave "final" precedida por su nombre. Una vez que una variable se declara como final; no se puede modificar más en el programa. Se debe inicializar una variable final en la declaración de tiempo. Las variables finales no ocupan memoria por instancia. Todos los objetos de las clases comparten la misma copia de la variable final.

El método declarado como final no puede ser anulado por la subclase de esa clase en la que se declara el método final. Cuando una clase se declara como final, otra clase no puede heredar esa clase final. C ++, C # no admiten el concepto de palabra clave final. Java admite el concepto de palabra clave final y en Java; La clase, la variable y el método pueden declararse como finales.

  1. La palabra clave estática es aplicable a una clase estática anidada, variables, métodos y bloques. Por otro lado, la palabra clave final es aplicable a los métodos y variables de clase.
  2. La variable estática se puede inicializar en cualquier momento, mientras que una variable final debe inicializarse en el momento de la declaración.
  3. Una variable estática puede reinicializarse mientras que, una vez inicializada, una variable final nunca puede reinicializarse.
  4. Un método estático puede acceder al miembro estático de la clase y solo puede ser invocado por otros métodos estáticos. Por otro lado, el método final nunca puede ser heredado por ninguna clase.
  5. El bloque estático se usa para inicializar las variables estáticas, mientras que la palabra clave final no admite ningún bloque.

Conclusión:

Tanto la palabra clave estática como la final resuelven un propósito diferente cuando se aplican a la clase, variable y método.