static表示静态的,所有对象共用的(所有对象都看到一份,而且只要其中任何一个对象对其进行修改,其他所有对象都会看到这个变化),所有的静态内容都是跟随类存在,在对象还没有时就已经存在了。
static属性:static属性被所有对象共享;这个属性先于对象存在
static方法:static方法先于对象存在
静态成员变量(用static声明的成员变量):
①:它为该类的公用变量,隶属于类;被该类的所有实例(对象)共享,在类被载入时被显示初始化。
②:对于该类的所有实例(对象)来说,static成员变量只有一份。被该类的所有实例(对象)共享。
③:可以使用"对象.类属性"来调用。不过,一般都是用"类名.类属性"调用
代码示例:
public class Bojian{
public static void main(String args[]){
Hero hero1=new Hero("张三");
Hero hero2=new Hero("李四");
System.out.println(Hero.count);
}
}
class Hero{
String name;
static int count=0;
public Hero(){
System.out.println("英雄出生");
count++;
};
public Hero(String name) {
this.name = name;
System.out.println(name+"英雄出生");
count++;
}
}
内存分析:
静态方法(static声明的方法):
①:不需要对象,就可以调用(类名.方法名())
②:在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。也不可以出现this关键字(this永远指向当前对象)。
代码示例:
public class Bojian{
public static void main(String arg[]){
Hero.hello();//没有对象
}
}
class Hero {
String name;
public static void hello() {
//不能在静态方法中引用非静态的成员变量
int number = 1;
System.out.println(number +"向你问好!");
}
}



