编辑以下代码:
public class t{
public int i;
public void fun(){
}
public static void main(String...args){
i=3;
fun();
}
}
编译:
javac t.java
得到以下报错:
原因:
在main函数中对类内部成员变量和方法进行调用是错误的,main方法为静态方法,而java中静态成员方法中不能引用非静态方法和变量
解决方法:
方法一:在构造函数中调用非静态方法和成员变量
public class t{
public int i;
t(){
i=3;
fun();
}
public void fun(){
}
public static void main(String...args){
}
}
方法二:main方法中new一个对象,直接使用对象调用成员方法和变量
public class t{
public int i;
public void fun(){
}
public static void main(String...args){
t t1=new t();
t1.i=3;
t1.fun();
}
}