问题描述
- java中静态方法不能调用非静态方法
-
静态方法中不能调用非静态方法,那么在静态方法中通过实例化一个非静态的对象,
来实现对非静态方法的调用应该怎么理解
public class test1{
public static void main(string []args){//静态的方法
test2 t=new test2();
t.do;//调用非静态的方法
}
}class test2{
void do(){}
}
解决方案
静态方法中不能调用非静态方法,原因是因为静态方法没有this指向实例。所以不能有非静态方法。
如果是实例.非静态方法,这有明确的this指向。所以这不是“静态方法中不能调用非静态方法”所描述的意思。
解决方案二:
静态方法的目的就是为了在不创建方法所在的对象时就可以直接调用。
在静态方法中调用别的非静态方法,就是需要先创建对象,然后再用对象的引用调用需要的方法。
时间: 2025-01-31 02:37:56