Clasificación de variables en variables locales de Java, variables de instancia, variables estáticas

1. Clasificación de variables en Java

    Las variables en Java se pueden dividir en variables locales y variables miembro de acuerdo con diferentes posiciones de declaración . Si una variable miembro se modifica con la palabra clave estática, también se llama variable miembro estática , y si no hay modificación estática, también se llama una variable miembro de instancia . A continuación se describen las conexiones y diferencias entre los tres.

public class Variable {
    
    
    //静态成员变量(静态变量)
    static int x=10;
    //实例成员变量(成员变量)
    int y=20;

    public static void main(String[] args) {
    
    
        //局部变量
        int num=30;
    }
}

2. La diferencia entre variables locales, variables miembro y variables estáticas

variable Declarar ubicación Ubicación de la memoria Ciclo vital inicialización
Variable local En el método o en la declaración del método (parámetros) Apilar Creado como se llama al método, desaparece cuando el método desaparece Se debe asignar la inicialización
Instancia variable Método externo en clase montón Creado a medida que se crean los objetos, desaparecen a medida que los objetos desaparecen Tiene un valor de inicialización predeterminado
Variable estática Método externo en clase Área estática Carga a medida que se carga la clase y desaparece cuando la clase desaparece Tiene inicialización predeterminada

¿Cuándo usar variables estáticas?

Cuando un cierto "valor de atributo" de todos los objetos de una clase no cambia con el cambio del objeto, para ahorrar memoria de pila, podemos definir el atributo como un atributo de nivel de clase, es decir, declararlo como estático. variable, y aumentar a datos de "Toda la familia", se puede acceder a dichas variables directamente utilizando "nombre de clase" sin crear objetos.

Variables de miembro Diferencia de superficie escenas que se utilizarán Método de llamada Ubicación de la memoria
Instancia variable Sin modificación estática Porque cada objeto de la clase esAtributos únicos Solo se puede llamar por el nombre del objeto Área de montón
Variable estática Modificado por estática Para cada objeto de la claseAtributos consistentes Puede usar el nombre de la clase para llamar, también puede usar el nombre del objeto para llamar (no recomendado) Área estática

Por ejemplo:

public class ManTest {
    
    
    public static void main(String[] args) {
    
    
        Man man=new Man("小明");
        //实例变量使用对象名调用
        System.out.println("名字"+man.name);
        //静态变量可使用类名调用(推荐)
        System.out.println("性别"+Man.sex);
        //静态变量也可以通过对象名调用(不推荐)
        System.out.println("性别"+man.sex);
    }
}
class Man{
    
    
    //实例变量
    String name;
    //静态变量
    static char sex='男';
    Man(){
    
    }
    Man(String name) {
    
    
        this.name = name;
    }
}

Algunas notas

  1. El principio de proximidad
      cuando los miembros de las mismas variables locales y nombres de variables, utilizan en el método, utilizando el principio de proximidad.
  2. Alcance
      Los nombres de las variables en el mismo dominio no pueden tener el mismo nombre. Diferentes nombres de variables de dominio pueden ser iguales. Java sigue el principio de proximidad y accederá automáticamente a los datos más cercanos.
    Con respecto al rango válido de variables, recordemos una oración: no la reconocerás después de las llaves .

Supongo que te gusta

Origin blog.csdn.net/m0_46988935/article/details/109995487
Recomendado
Clasificación