| 内部类可以直接访问外部类的成员,那么内部类访问外部类的成员函数,应该怎么写呢复制代码/*
内部类定义在局部时,
1,不可以被成员修饰符修饰
2,可以直接访问外部类中的成员,因为还持有外部类中的引用。
        但是不可以访问它所在的局部中的变量。只能访问被final修饰的局部变量。
*/
class Outer
{
        int x = 3;
        void method(final int a)
        {
                final int y = 4;
                class Inner
                {
                        void function()
                        {
                                System.out.println(a);
                        }
                }
        new Inner().function();
                
                
        }
        class In extends Outer
        {
                void show()
                {
                        System.out.println("haha");
                }
                lili(2);
        }
        void lili(int b)
        {
                new In().method(b);
        }
}
class  InnerClassDemo3
{
        public static void main(String[] args) 
        {
                Outer out = new Outer();
                out.method(7);
                //new Outer().method(8);
                out.method(8);
                out.lili();
        }
}
我这样做,却编译失败
 提示:InnerClassDemo3.java:31: 错误: 方法声明无效; 需要返回类型
 lili(2);
 ^
 InnerClassDemo3.java:31: 错误: 非法的类型开始
 lili(2);
 ^
 2 个错误
 这是怎么回事
 |