Variables miembro de Java y variables locales
Directorio de artículos
1 similitudes
1.1 El formato para definir variables es el mismo
变量类型 变量名 = 变量值
1.2 se declaran antes de su uso
1.3 Las variables tienen su alcance (el alcance es un par de llaves)
2 diferencias
2.1 posición en la declaración de clase
Atributos: definidos directamente en {}
Variables locales: declaradas en método, parámetro de método, bloque de código, parámetro de constructor, constructor
class Person{
/*
这两个是成员变量
*/
String name;
int age;
public void eat(String name //局部变量){
int number; //局部变量
}
}
2.2 Modificador de competencia
Atributo: puede especificar sus permisos cuando declara, usa modificadores de permisos (incluidos público privado y protegido por defecto)
Variables locales: no se pueden usar modificadores de permisos (puede haber dos entendimientos, uno es que no se pueden escribir y el otro es que las variables locales y los modificadores de permisos de métodos son los mismos)
class Person{
/*
成员变量定义时可以指明权限修饰符
*/
private String name;
public int age;
public void eat(){
//private int age; 局部变量定义时不能指明权限修饰符
}
}
Aproximadamente 2.3 inicialización predeterminada
Atributos: Para los atributos de la clase, existen valores de inicialización predeterminados según su tipo.
El tipo entero es 0, el tipo flotante es 0.0, char es 0, booleano es falso y el tipo de datos de referencia es nulo
Variables locales: sin valores de inicialización predeterminados significan : antes de llamar a una asignación de variable local debe mostrar especial : asignación de parámetros cuando llama en la línea
2.4 está cargado en la ubicación de la memoria
Atributos: cargados en el espacio del montón (no estático)
Variables locales: cargadas en el espacio de la pila