关于一个静态变量的问题 我在父类里边定义一个变量,在子类的main函数中调用,提示非静太变量不能在静态 的变量中使用,难道非要将父类中的变量定义为静太的才能在子类的main函数中使用么.能不能具体的分析一下内存,说明一下为什么! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那是因为你的main是static,当然只能直接访问static的变量啦! 楼上说的对,你看看static 方法,只能访问非本方法之外的静态变量,或是该方法所属类的实例的变量.... static声明的变量存放在静态存储区中,相当于全局变量 也就是说只要有一个函数对它进行了修改 其他的函数得到的是这个变量的新值由于它分配在静态存储区,所以他也只能被静态函数调用 static特性就是程序一加载就实例的。你用一个nonstatic的变量在static中是不能确定变量值的。所以不能在static的main()方法中使用nonstatic的变量。建议看看《java编程思想》或其他java基础书籍 main定义成静态方法只能调用静态数据或其他的静态方法,记住这个原则就好了 原因是static修饰的不论是变量还是方法,都是在类没有实例化时前就被JVM加载了,而你的变量如果没有static修饰的话,只有在类实例化后才可以访问到,所以你在static的方法里访问普通变量是就会出现这种异常了 shibenjie 说的很清楚,静态变量和静态方法是在第一次被调用加载到内存的非静态变量是每次实例化都要加载到内存!相对静态变量和方法来说,它是不确定的! 非static的变量是在实例化对象的时候才被JVM加载的.想要使用该变量要先实例化该对象. 请教一个小小的算法问题,一时搞不懂,还请各路大侠在此处歇歇脚 Blowfish加密算法在JAVA中的问题 如何在JSP中实现点击下拉列表自动改变文本框中的值 用正则表达式怎么得到Google的搜索结果,首尾都不要,分页也不要,只要第一页的结果,谢谢 Vector类里面的元素是无限制增加吗?? java中怎么实现队列 sf 小问题 jdbc运行问题 关于 Java 初始化对象顺序的问题 请问怎么 在这个文本编辑器里面实现JScrollPane,也就是可以实现滚动,下拉?实现马上结帖! linux下编译转换到windows
原因是static修饰的不论是变量还是方法,都是在类没有实例化时前就被JVM加载了,
而你的变量如果没有static修饰的话,只有在类实例化后才可以访问到,
所以你在static的方法里访问普通变量是就会出现这种异常了
shibenjie 说的很清楚,静态变量和静态方法是在第一次被调用加载到内存的
非静态变量是每次实例化都要加载到内存!相对静态变量和方法来说,它是不确定的!
想要使用该变量要先实例化该对象.