一,static静态域
如果将一个域定义为static,那么这个类是静态域,每个类只有一个静态域;每个实例化的对象都有对此实例域的引用,而每一个实例化的对象对于所有实例域都有自己的一份拷贝。
public class Demo{
private String name;
private String floorboard;
..........................
}
1,像name对于每个实例化的对象来说都有一份对name的拷贝。每个实例化对象都有自己的name.
2,floorboard对于每个实例化对象来说,都有一份自己的引用。及时没有实例化对象,floorboard也存在,它属于类,不属于任何独立的对象。
二,静态常量
1,静态常量只能使用类名直接调用这个常量。例如:Demo.floorboard.
2,一个实例域的调用要通过创建对象来调用。比如:先创建Demo的对象Test1,然后用Test1.name.
三,静态方法
静态方法不能想对象进对对象进项操作,它也没有隐式参数,所以静态方法没有this方法,静态方法也不能操作实例域。
public class a{
static int a = 5;
int b = 10;
public static void main(String[] args){
System.out.println(a);
System.out.println(b);
}
}
在上面main方法中因为是所有的main方法都是static静态的所以第一次输出a是正确的,对于非静态的b会出现编译时异常。
什么时候才使用静态方法呢?
1,方法不需要访问对象状态,其所需要参数都是通过显示参数提供
2,方法只需要访问类的静态域。