static,代表“全局”或“静态”的意思,用来修饰变量或方法,也可以用来形成static静态块。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,而是被类的所有实例共享。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。
就static的几种用法,我分别小小的测试了一下,接下来就跟大家分享分享!
1.内部类中static的使用
若一个普通类声明为静态的,则会报错,并且提示移除static,而内部类却不然。当一个内部类声明为静态时,可以直接将此类作为一个普通类来使用,而不需要再去实例一个外部类。
package lyd_static_tester20130804;
public class tester1 {
public static void main (String[] args){
static_class.static_class_fu sc = new static_class.static_class_fu();
}
}
package lyd_static_tester20130804;
public class static_class {
public static class static_class_fu {
static_class_fu() {
System.out.println("静态类实现啦!");
}
}
}
2.定义方法时static的使用
若一个方法声明为static,那么在调用此方法时则无需实例化本类的对象。
package lyd_static_tester20130804;
public class tester2 {
public static void static_method(){
System.out.println("静态方法实现啦!!!");
}
public static void main (String[] args){
static_method();
}
}
3.定义变量时static的使用
从某种意义上讲,在定义一个变量时将其声明为static,实际就是将其定义为全局变量。
package lyd_static_tester20130804;
public class tester3 {
static int i=1;
public void count(){
i++;
}
public static void main(String[] args) {
tester3 t = new tester3();
t.count();
System.out.println("静态变量实现啦,i值加1,为"+i);
}
}
4.静态代码块( static{} )
static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内。如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,且每个代码块只会被执行一次。