不能对非静态字段/方法进行静态引用
如图所示,分别在第5行与第10行删除了static,则程序报错。
原因:
非静态常量是随着对象实例化才分配内存赋值的,运行main时只加载了类,内存中还没有变量值,而类加载时首先为static成员分配空间并被初始化为0。
简而言之,static修饰的属性和方法在类初始化时加载,非静态属性和方法在对象初始化时加载。
如图所示,分别在第5行与第10行删除了static,则程序报错。
原因:
非静态常量是随着对象实例化才分配内存赋值的,运行main时只加载了类,内存中还没有变量值,而类加载时首先为static成员分配空间并被初始化为0。
简而言之,static修饰的属性和方法在类初始化时加载,非静态属性和方法在对象初始化时加载。