java ,为什么无法从静态上下文中引用非静态方法
发布网友
发布时间:2023-07-16 15:31
我来回答
共5个回答
热心网友
时间:16小时前
因为编译器不知道那个方法在哪,两种解决办法,一种加static修饰,这样在程序运行时就会被加载入内存,另一种创建对象,然后调用对象的方法,如
public static void main(String args[]){
TextLinerSearch t = new TextLinerSearch ();
t.linearSearch(list,-3);
}
热心网友
时间:16小时前
静态方法随着类的加载而加载 然后存到内存的功用方法区, 非静态的方法是要先实例化后才生成的.所以linearSearch(list,-3);就会出错追问可以要你的qq吗?以后不懂的问题可以向你请教
热心网友
时间:16小时前
你把这个方法也改为静态的。
private static void linearSearch(int[] list,int key){
for(int i=0;i<list.length;i++){
if(key==list[i])
System.out.println(i);
}
System.out.println("There is no right number in the list");
}
热心网友
时间:16小时前
在int前面加上static就行了。
热心网友
时间:16小时前
由于tostring()方法是非静态的,故不能直接通过类名引用,上面的这句代码:
system.out.println(course.tostring());
改为
system.out.println(cs.tostring());
即可。
有问题欢迎提问,满意请采纳,谢谢!