Visión de conjunto
Static significa estático, que se utiliza para modificar miembros (incluidas variables y métodos de miembros). Defina las variables compartidas por todos los objetos de la clase actual como estáticas.
método de entrevista
Dos métodos de acceso:
1) Puede utilizar llamadas a objetos: objetos. Miembros estáticos
2) Puede usar el nombre de la clase para llamar: nombre de clase. Miembro estático
Recomendación: use el nombre de la clase para llamar
public class Person{
static string country;
}
public class Test{
public static void main(String[] args){
//创建对象
Person person=new Person();
person.country;
//或者直接类名.静态成员
Person.country;
}
}
Reglas de acceso para miembros estáticos
Reglas de acceso:
1) Static solo puede acceder directamente a estático, no no estático
2) No estático puede acceder directamente estático y no estático
package com.itheima_01;
public class AAA {
//静态变量
static int a ;
//普通变量
int b;
//静态方法
public static void method1(){
System.out.println(a); //静态方法可以访问静态变量
System.out.println(b); //静态方法不可以访问非静态变量
method2(); //静态方法可以访问静态方法
method3(); //静态方法不可以访问非静态方法
}
public static void method2(){
}
//普通方法
public void method3(){
System.out.println(a);
System.out.println(b);
method1();
method4();
}
public void method4(){
}
}
Notas sobre métodos estáticos
1) Una vez que se utiliza la palabra clave static, las variables miembro no se pertenecen a sí mismas, sino a la clase , mientras sean objetos de esta clase, todas comparten los mismos datos. Por ejemplo, las aulas de compañeros y estudiantes son las mismas y pueden declararse como estáticas
2) Ya sea una variable estática o un método estático, se recomienda usar el nombre de la clase para llamar
3) Los métodos estáticos no pueden llamar directamente a métodos no estáticos . Motivo: en la memoria, el contenido estático se genera antes que el contenido no estático. Es decir: las generaciones futuras conocen a los antepasados, pero los antepasados no conocen a las generaciones futuras [por ejemplo, conocemos a Qin Shihuang, pero Qin Shihuang no nos conoce] ( siempre se prefiere estático a no estático )
4) Los métodos estáticos no pertenecen a objetos, sino a clases.
5) Esta llamada no se puede usar en un método estático. Esto representa el objeto actual, y un método estático pertenece a una clase. Después de que se carga la clase, el objeto no necesariamente existe. Si usa esta llamada, se producirá un error .
6) La primera ejecución de un bloque de código estático se ejecuta solo una vez