thingKing in java : 希望某个方法不与包含它的类的任何方法关联在一起。两个术语:类数据和类方法。他们作为整个类,而不是类的某个特定对象而存在的。
有四种用法:
1)static变量
2)static方法
3)static块
4)static导入包
1)static变量:
public class StaticTest { static int x = 1; public StaticTest() { this.x = 2; } public void setValue(int i) { this.x = i; } public int getValue() { return this.x; } public static void main(String[] args) { System.out.println(StaticTest.x); StaticTest test1 = new StaticTest(); StaticTest test2 = new StaticTest(); test1.setValue(3); test2.setValue(4); System.out.println(test1.getValue()); System.out.println(test2.getValue()); }}
输出:1,4,4
解释:StaticTest.x只有一份空间。test1.x和test2.x指向同一存储空间。
2)static方法
thinking in java:static方法一个重要用法就是在不创建任何对象的情况下,可以调用它。这一点对定义main()方法很重要,是一个应用时的入口点。
public class StaticTest { public static void staticMethod() { System.out.println("static method test"); } public static void main(String[] args) { StaticTest.staticMethod(); }}
output: static method test
3)static块:
public class StaticTest { static { System.out.println("static block"); } public static void staticMethod() { System.out.println("static method test"); } public static void main(String[] args) { // StaticTest test = new StaticTest(); StaticTest.staticMethod(); } }
以下情况会输出static块的内容:1,new对象;2,调用static方法;3extends父类,父类的static block会输出。
4)static导入包
import static ..... 比较少用。
参考:https://www.cnblogs.com/dolphin0520/p/3799052.html,https://www.cnblogs.com/dotgua/p/6354151.html?utm_source=itdadao&utm_medium=referral