关于”无法从静态上下方法中引用非静态方法和变量“的错误
java中,同一个类中,静态方法无法直接调用非静态的变量和方法,但可以通过实例化类的对象间接调用;不同类则需要实例化类的对象调用。
实例代码如下
class dog{
int a = 0;
void eat(){
System.out.println("meat");
}
static void run(){
System.out.println("fast!");
}
}
public class cat{
static int a = 5;//全局变量可加上static,供静态方法调用
void run(){
System.out.println("fast!");
}
static void eat(){
System.out.println("fish");
}
public static void main(String[] args){
//主方法是静态方法
eat();//静态方法直接调用
cat c = new cat();
c.run();
//先实例化类的对象,进而调用方法(也可以是new cat().run();)
System.out.println(a);
new dog().eat();//调用不同类的方法
new dog().run();
}
}