static修饰符修饰的域变量不属于任何一个类的具体对象。它被保存在类的内存区的公共储存单元中,而不是保存在某个对象的内存区域内,因此,一个类的任何对象访问它的时候得到的数值都是相同的,方位的方式为“类名.域名”,也可以通过对象引用,来访问。
下面总结:
1.static方法是类的方法,但可以被所有的对象访问。调用这个方法是,可采用“对象引用.方法名”,也可以采用“类名.方法名”。
2.static方法内部的代码,只能访问类中的static属性或方法(因为他们属于对象);但非static方法(对象方法)可以访问static属性或方法。
3.main方法是特殊的静态方法。
例:
import java .awt.;
import java.applet.;
class pc{
static double ad =8;
}
public class RunPc extends Applet{
public void paint(Graphic g) {
Pc m =new Pc();
Pc m1=new Pc();
m.ad=0.1;
g.drawString(“m1=”+m1.ad,20,50);
g.drawString(“Pc=”+Pc.ad,20,70);
g.drawString(“m=”+m.ad,20,90);
}
}
那么什么时候使用static方法呢?
当对象中出现共享数据时,就一应该使用static修饰,这是一个很巧妙且常用的方法。
补充:
静态代码块:在一个类当中可以有不包含在任何方法体当中的静态代码块,当类被装载的时候,(即代码编译的时候),静态代码块执行一次且只执行一次,静态代码块常用来对类中定义的属性进行初始化!
如:class StaticCodeBlock{
static int value;
static{
value=3;
System.out.println(“value=”+value);
}
public static void main(String []args){}
}
static静态代码块就是起到赋予初始值的任务!