第一个问题: 不执行是因为你没有调用那个方法,你可以在Outer3的method()方法中new一下内部类的对象,然后通过对象的引用调用内部类的function()方法.这样的话,就会执行System.out.println(x);这句话.
第二个问题: 要执行一个类里面的方法,有好几种情况,
(1)如果类中的方法是静态的,那么就不需要new对象就可以直接拿类名进行调用,比如如果你的Outer3的method方法定义为 public static void method(),那这样的话,调用的方式就是Outer3.method().这样就可以调用了;
(2)如果类中的方法是public的,那么就需要new对象才能调用.
(3)如果类中的方法是protected的话,那么也需要new对象才能调用,但是和public有一个区别,就是protected的方法要调用的话,必须和这个类在一个包中才能调用,如果不在一个包里面,是不能调用的.
(4)如果类中的方法是private的话,那么只能在类中调用,不能在外面调用,也就是说,你即便new了对象,也不能访问这个方法.
有什么疑问可以继续追问. |