- /*
- 内部类定义在局部时,
- 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 个错误
这是怎么回事 |