再次复习static关键字有以下总结:
1、static可以修饰变量、方法和语句块;
2、static修饰的变量叫静态变量,修饰的方法叫静态方法;
3、static修饰的变量和方法可以不用初始化直接被调用。
4、如果一个类里有静态变量,则不管这个类被初始化了多少次,其中的静态变量只能保存一个值,并且是最后一个值。
如:
Student s1 = new Student();
Student s2 = new Student();
s1.name = "张三"; //name不是静态变量
s2.name = "李四";
s1.school = "第七中学"; //school是静态变量
System.out.println(s1.school); //输出"第七中学"
s2.school = "圣约翰教会中学";
System.out.println(s1.name); //输出"张三"
System.out.println(s2.name); //输出"李四"
System.out.println(s1.school); //输出"圣约翰教会中学"
System.out.println(s2.school); //输出"圣约翰教会中学"
//最后两行输出语句都是输出 "圣约翰教会中学" 。
从上面的例子看出来,静态变量school,被new了2次,在内存里都只有一个地址,只能存一个值,所以新的赋值“”圣约翰教会中学“”覆盖了原值“第七中学”,以后的访问都只能取到新值。
而如果school在类里已经定义了值“九中”,可以无需初始化(new)就取到值,象这样操作:
Student.school;这样就可以取到school的值“九中”了。
5、同样类中定义的静态方法也可以直接使用而无需初始化。
如:Student.study();