一、概述
static 关键字是声明静态变量,静态方法用的。static的含义是属于类且不属于类对象的变量和函数。
二、static的产生。
在创建对象的时候除非用new创建那个类的对象,否则实际上并没有获得任何对象只有当执行new来创建对象时数据存储空间才被分配,其方法才供外界调用。但是有两种情况上述方法时无法解决的
第一种只想为某特定域分配单一存储空间而不去考虑究竟要创建多少对象,甚至不需要创建任何对象。
第二种希望某个方法(变量)不予包含它的类的人很对象关联在一起。也就是没有创建对象,也能调用这个方法。
为了解决上面的两个问题static关键字就诞生了。
当一个事物是static的时候就意味着这个域或方法不会与包含它的那个类的任何对象实例关联在一起。即使从未创建某个类的任何对象,也可以调用其Static方法或其static域。三、例子。
TestStatic.java
public class TestStatic {
public static int i=33;
}StaticMain.java
public class StaticMain { /**
* @param args
*/
public static void main(String[] args) {
System.out.println("TestStatic.i="+TestStatic.i); TestStatic s1=new TestStatic();
TestStatic s2=new TestStatic(); System.out.println("s1.i="+s1.i);
System.out.println("s2.i="+s2.i); s2.i=133;
System.out.println("s1.i="+s1.i);
System.out.println("s2.i="+s2.i); } }效果图:
四、总结。
在例子我们发现第一个打印出来i的值就是实现了希望某个变量不予包含它的类的人很对象关联在一起。也就是没有创建对象,也能调用这个方法。下面的则是实现了只想为某特定域分配单一存储空间而不去考虑究竟要创建多少对象,甚至不需要创建任何对象。static关键字就是为我们解决了这两个问题。
static关键字还是需要慎重使用以免给程序带来不必要的麻烦。