public class StaticTest {
static int i ; static int m=30; int j ; int k=25; static{ i=10; System.out.println("static修饰的类属性i值是"+i); } public StaticTest(){ System.out.println("无参构造的i值为"+i); } public static void getNum(){ System.out.println("static修饰的类方法"+i); } public static void main(String[] args) { StaticTest st = new StaticTest(); System.out.println("i的值为"+StaticTest.i); st.getNum(); System.out.println("m值为"+st.m); System.out.println("k的值为"+st.k); }}
static修饰的类属性i值是10
无参构造的i值为10i的值为10static修饰的类方法10m值为30k的值为25
通常不static修饰的变量和方法称为类属性和类方法(static修饰的类,所有对象公用一个static变量),不用static修饰的属性和方法属于单个对象,称为实例属性和实例方法
启动会先静态变量(static修饰的)的分配,在走构造方法