这个并不是引用数据类型和基本数据类型的问题。- public class Test{
- int i;
- public static void main(String[] args) {
- System.out.println(i);
- }
- }
复制代码 这样也是会报错的。因为你的main方法是静态的,静态方法不能调用非静态的属性和方法。
因为静态的方法和属性是当类被加载到虚拟机中时就会被分配到内存空间上,可以直接执行的。
但是非静态的属性和方法必须是在创建实例化时才会分配到内存空间的。而如果你没有创建实例化对象的时候就通过静态的方法去调用非静态的属性或者方法,那就是没东西可以调,那明显就是错误的。
所以规定,静态不能调用非静态。
|