前言:
在java中,static变量为静态成员变量,生命周期与类相同。
它是该类的公用变量,被类的所有实例共享,在类被载入时显示初始。
static变量只有一份,一般用“类名.类属性/方法"调用,也可以通过对象调用。
在static方法中不可直接访问非static成员
实例:
public class User {
int id;
String name;
String pwd;
static String address = "博学楼";
public User(int id, String name){
this.id = id;
this.name = name;
}
public void login(){
System.out.println(name+"要登陆!");
}
public static void printaddress(){
//login();调用非静态会出错
System.out.println(address);
}
public static void main(String[] args){
User u1 = new User(101,"Boss");
User.printaddress();
u1.printaddress();
User.address = "34号楼";
User.printaddress();
u1.printaddress();
}
}
代码分析:
1.在printaddress中,不可调用login,因为login调用name非static
2.static的变量可修改,且永久修改。
3.可通过对象查询static,也可通过对象永久修改。