超极菜鸟问题,帮我看看下面的这段代码有错没??错在哪?为什么 RTpublic class JRAnswer { public static void main(String[] args){ search(); } protected void search(){ }} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没实例化,改成public class JRAnswer { public static void main(String[] args){ (new JRAnswer()).search(); } protected void search(){ }}或改成public class JRAnswer { public static void main(String[] args){ JRAnswer.search(); } protected static void search(){ }} search();这里错了先说一下解决方法:你可以创建JRAnswer的实例去调用这个方法如:new JRAnswer().search();再说一下为什么不可以在静态方法中调用非静态方法:\在java里面,静态方法、静态变量都是在类加载的时候就会被初始化的,并且需要在类加载的时候进行必要的检查。当在静态方法里面遇到非静态的实例变量或者方法时,由于类加载时候这些方法和变量并未存在,这样就找不到它们了,这样就可以导致程序出错。为了避免这种错误,编译器就会先检测是否有这样的调用。这样说不知道你清楚了没? 这里的错误原因:不能对类型JRAnswer中的非静态方法search()进行静态引用!可改为如下代码:public class JRAnswer { public static void main(String[] args){ search(); } protected static void search(){ }}或者public class JRAnswer { public static void main(String[] args){ new JRAnswer().search(); } protected void search(){ }}这两种都是正确的。 程序试调的时候老喜欢在类里加个main函数.可以每回都要把试调函数改成static,烦死了.我当然知道静态方法不能调用非静态方法..可我一直认为main是个例外.可一直还是没找到依据,看来我真的是错了.谢谢上面各位.结帖. 急!!思路不是很清晰,不知如何写 超级难题一道 有main()方法,可以编译,但运行时出现 NoClassDefException,请问是什么问题? java有没有像C中 scanf之类的东西? 请问如何获得一个Image对象的size,也就是长和宽? 要出人命啦!!! 谁知道哪儿有together5的中文文档? 如何取得数组的长度? //java去掉字符串两端的空格; 如何实现伪直播业务? 【请教贴】怎么才能自动记录日志 怎么设置SWT中Dialog窗口标题 大家在做J2EE项目中用到JAVA多线程的多吗?现在有一个月的空闲时间,想再学点东西,不知道是不是该学点多线程。谢谢!
public static void main(String[] args){
(new JRAnswer()).search();
}
protected void search(){
}
}或改成public class JRAnswer {
public static void main(String[] args){
JRAnswer.search();
}
protected static void search(){
}
}
这里错了
先说一下解决方法:你可以创建JRAnswer的实例去调用这个方法如:new JRAnswer().search();再说一下为什么不可以在静态方法中调用非静态方法:\
在java里面,静态方法、静态变量都是在类加载的时候就会被初始化的,并且需要在类加载的时候进行必要的检查。
当在静态方法里面遇到非静态的实例变量或者方法时,由于类加载时候这些方法和变量并未存在,这样就找不到它们了,
这样就可以导致程序出错。为了避免这种错误,编译器就会先检测是否有这样的调用。这样说不知道你清楚了没?
可改为如下代码:
public class JRAnswer {
public static void main(String[] args){
search();
}
protected static void search(){
}
}
或者
public class JRAnswer {
public static void main(String[] args){
new JRAnswer().search();
}
protected void search(){
}
}
这两种都是正确的。
我当然知道静态方法不能调用非静态方法..可我一直认为main是个例外.可一直还是没找到依据,
看来我真的是错了.
谢谢上面各位.结帖.