stringtranslate.com

Estático (palabra clave)

En lenguajes de programación como C , C++ , Objective-C y Java , statices una palabra reservada que controla tanto la vida útil (como una variable estática ) como la visibilidad (dependiendo del enlace ). El efecto de la palabra clave varía según los detalles del lenguaje de programación específico.

C y C++

En C y C++, el efecto de la staticpalabra clave depende de dónde ocurre la declaración.

staticpuede actuar como una clase de almacenamiento (que no debe confundirse con clases de programación orientada a objetos ), como puede y extern( que también son palabras reservadas). Cada variable y función tiene una de estas clases de almacenamiento; Si una declaración no especifica la clase de almacenamiento, se utiliza un valor predeterminado dependiente del contexto:autoregister

En estos idiomas, el término "variable estática" tiene dos significados que son fáciles de confundir:

  1. Una variable con la misma duración que el programa, como se describe anteriormente (independiente del idioma); o
  2. (Específico de la familia C) Una variable declarada con clase de almacenamiento static.

Las variables con clase de almacenamiento extern, que incluyen variables declaradas en el nivel superior sin una clase de almacenamiento explícita, están staticen el primer significado pero no en el segundo.

Variable global estática

Una variable declarada staticen el nivel superior de un archivo fuente (fuera de cualquier definición de función) solo es visible en todo ese archivo (" alcance del archivo ", también conocido como " enlace interno "). En este uso, la palabra clave staticse conoce como " especificador de acceso ".

función estática

De manera similar, una función estática, una función declarada en staticel nivel superior de un archivo fuente (fuera de cualquier definición de clase), solo es visible en todo ese archivo (" alcance del archivo ", también conocido como " enlace interno ").

Variables locales estáticas

Las variables declaradas staticdentro de una función se asignan estáticamente, por lo que mantienen su ubicación en la memoria durante toda la ejecución del programa, mientras tienen el mismo alcance de visibilidad que las variables locales automáticas ( autoy register), lo que significa que permanecen locales para la función. Por lo tanto, cualquier valor que la función ponga en sus variables locales estáticas durante una llamada seguirá estando presente cuando se vuelva a llamar a la función.

específico de C ++

Variables miembro estáticas

En C++ , las variables miembro declaradas como staticdefiniciones de clase internas son variables de clase (compartidas entre todas las instancias de clase, a diferencia de las variables de instancia ).

Función miembro estática

De manera similar, una función miembro estática  (una función miembro declarada staticdentro de una definición de clase) debe ser relevante para todas las instancias de una clase en lugar de para cualquier instancia específica. Una función miembro declarada como staticse puede llamar sin crear una instancia de la clase.

Java

Esta palabra clave staticsignifica que este método ahora es un método de clase ; se llamará a través del nombre de la clase en lugar de a través de un objeto.

Un método estático normalmente se llama como <classname>.methodname(), mientras que un método de instancia normalmente se llama como <objectname>.methodname().

Ver también