静态方法中不能直接引用非静态变量 本帖最后由 tk_peter 于 2010-08-15 15:22:31 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 放在main方法外部a也是非静态变量啊! 你在main()方法外创建的A对象是一个成员变量。而在main()方法中创建的是一个局部变量,不一样的。 //首先你要明白一点,static方法不依赖于实例,不通过实例也可以调用,static方法中只能引用类变量(也就是static变量)和局部变量,想一想在static调用一个未实例化的变量会不会出问题!。 public static void main(String[] args) { A a = new A(); System.out.println(a.i); } 没有变量可以直接调用,静态变量本质上是通过jvm实例化类之后的调用,实例化过程由虚拟机管理,单例状态,本质上还是通过类的调用方式实现 同1楼,你在静态区域new出来的就能引用,在main外new的话,new出来的对象还是处在非静态区域,仍然是非静态变量,所以仍旧不能直接引用,不知道这样能理解么? 关于字符串最佳匹配算法的问题 JTable中嵌入combox,table增行后combox列没有下拉效果 请问这个for循环怎样优化(提高效率)? 菜鸟来啦;;; NIO里有办法用HttpURLConnection这样包装好的方式下载网页数据吗 问个轻松的话题:大家怎么看电子书啊? 关于jtable? 为什么Applet不能正常显示? Thinking in Java2代码问题 问一个很简单的布局问题 setAlwaysOnTop(true);与失去焦点事件冲突 求数组中n个最大的算法(只给最佳答案50分)
而在main()方法中创建的是一个局部变量,不一样的。
//首先你要明白一点,static方法不依赖于实例,不通过实例也可以调用,static方法中只能引用类变量(也就是static变量)和局部变量,想一想在static调用一个未实例化的变量会不会出问题!。
public static void main(String[] args) { A a = new A(); System.out.println(a.i);
}