public class innerclasstest {
private int i=5;
public class inner{
int geti(){
return i;
}
}
public static void main(String[] args){
inner in=new inner();
System.out.println(in.geti());
//这里出现错误 java: 无法从静态上下文中引用非静态 变量 this
//这是因为内部类一定是public的
(因为如果private的话,外部类无法使用),
而main方法是static,所以静态方法无法调用动态方法
}
}
修改后(把内部类和内部类所引用的外部类的变量声明为静态)
public class innerclasstest {
static int i=5;
public static class inner{
int geti(){
return i;
}
}
public static void main(String[] args){
inner in=new inner();
System.out.println(in.geti());
}
}
网友评论