Uso de variables miembro modificadas estáticas y métodos de miembros modificados

variables miembro estáticas modificadas

Clasificación de variables miembro

Las variables miembro de una clase se dividen en dos tipos según tengan modificación estática: variables de clase y variables de instancia (variables de objeto)

  • Variable de clase: tiene modificación estática, pertenece a la clase, tiene solo una copia en la computadora y será compartida por todos los objetos de la clase
  • Variables de instancia: sin modificación estática, pertenecientes a cada objeto, cada objeto instanciado no se afecta entre sí
/*
    作者:絮纸为花
*/
public class Student{
    //类变量,所有实例化对象都用这一个
    static String name;
    //实例变量,每个实例化对象都有自己的,互不影响
    int age;
}
  • Nombre de clase.Variable de clase (Al usar este método de llamada, puede saber claramente que esta variable es una variable de clase, porque solo se puede acceder a las variables de instancia usando: objeto.variable de instancia. Lo mismo ocurre con los métodos de instancia).
  • Variable Object.Class (fácil de confundir)

Cómo funcionan las variables miembro

Pila, montón, área de método, pensamos en la memoria como estas tres partes.

Al ejecutar la función principal, la clase escrita se colocará en el área de método para su ejecución. La clase que contiene la función principal también se colocará en el área de método para su ejecución. Las variables de la clase que hemos escrito también se encuentran en el área de método .

Si hay una variable de clase, esta variable de clase se colocará en el área del montón.

A continuación, se ejecuta el cuerpo de la función principal y el objeto instanciado que creamos se colocará en el área de la pila para su ejecución.

Modificar variables de clase

Si cambiamos variables de clase creando instancias de objetos, el orden es,

Pila (objeto instanciado) -> Montón (sí, pero no se puede encontrar la creación de instancias) -> Área de método (el objeto instanciado se informa en el superior del área de método, y el superior tiene la dirección de la variable de clase en el área del montón , encontrarlo y modificarlo)

Si lo modifica a través del nombre de la clase, comience directamente desde el área del método.

Modificar variables de instancia

Pila (objeto instanciado) -> Montón (sí, modificado directamente)

Escenarios de aplicación

Solo se puede compartir, acceder, modificar y utilizar variables de clase una copia de determinados datos.

Cada objeto instanciado debe tenerlo, utilizando variables de instancia.

método de miembro modificado estático

De manera similar, es casi lo mismo que las variables miembro modificadas estáticas.

La diferencia es que los métodos de clase no se colocan en el área del montón, sino que se colocan junto con la clase en el área de métodos, que como su nombre indica es la partición de memoria donde se almacenan los métodos.

Por lo tanto, al acceder a métodos de clase a través de objetos de instancia, solo necesita usar el área de métodos para encontrarlos.

Si observa detenidamente, puede encontrar que el método principal también es un método de clase.

nombre de clase java——》nombre de clase.main para ejecutar

El método principal también puede aceptar parámetros. En cmd, después de la compilación, en tiempo de ejecución, el parámetro del nombre de la clase Java se pasará a main. Puede atravesar la matriz de cadenas para acceder a los parámetros que pasó.

Escenarios de aplicación de métodos de clase: como clase de herramienta (métodos escritos de antemano, como ciertos algoritmos y estructuras de datos)

Herramientas: Mejore la reutilización y ahorre memoria.

Si escribe una clase de utilidad, debe hacer que el constructor de su clase de utilidad sea privado para evitar la creación accidental de objetos.

precauciones estáticas

  • Los métodos de clase pueden acceder directamente a los miembros de la clase, pero no pueden acceder directamente a los miembros de la instancia.
  • En los métodos de instancia, puede acceder directamente a los miembros de la clase y a los miembros de la instancia.
  • La palabra clave this se puede usar en métodos de instancia, pero no se puede usar en métodos de clase.

La idea principal: las clases son plantillas, las instancias son productos, primero hay plantillas y luego hay productos.

El producto usa la plantilla y a sí mismo, pero la plantilla no puede usar el producto y la plantilla solo puede usar la plantilla misma.

bloque de código

El bloque de código es uno de los cinco componentes principales de una clase (variables miembro, constructores, métodos, bloques de código, clases internas)

Hay dos tipos de bloques de código:

Bloque de código estático:

  • Formato: estático{ }
  • Características: Se ejecuta automáticamente cuando se carga la clase. Dado que la clase solo se carga una vez, el bloque de código estático también se ejecuta una vez.
  • Función: Complete la inicialización de la clase, la inicialización de la clase de herramienta oficial es multipropósito

Bloque de código de ejemplo:

  • Formato: estático{ }
  • Características: cada vez que se crea un objeto, el bloque de código de instancia se ejecuta y se ejecuta antes que el constructor.
  • Función: Igual que el constructor, completa la inicialización de la clase,

Supongo que te gusta

Origin blog.csdn.net/weixin_62302176/article/details/132517444
Recomendado
Clasificación