method()方法里调用下就行了作者: 曾祥旭 时间: 2013-3-27 21:03
(1)为什么System.out.println(x);这条语句没有执行?
你只是创建了一个外部类的对象调用外部类的成员方法,但是,此时,内部类位于外部类的成员方法内,你并没有创建对象去调function
这个方法,想要执行System.out.println(x);你需要做的就是创建内部类的对象,调用内部类中的方法,如:
class Outer3 {
int x = 3;
public void method() {
class Inner3 {
public void function() {
System.out.println(x);
}
}
new Inner3().function();
}
}
public class Test {
public static void main(String[] args) {
Outer3 outer=new Outer3();
outer.method();
}
}
(2)为什么要创建对象(new)?
我们知道方法的调用,无外乎只有两种,一种是对象调用,还有一种就是类名调用。此时,你也可以不new对象,用类名调用。如:
class Outer{
private static int num=33;
static class Inner{//它在Outer类中的成员位置上,那么可以通过对象调用成员
void show(){
System.out.println(num);
}
static void function(){//如果内部类中定义了静态成员,该内部类就必须是静态的。
System.out.println("function run..."+num);
}
}
void method(){
Inner in=new Inner();
in.show();
}
}
public class Test{
public static void main(String[] args){