java中:内部类能否直接访问访问外面类中的成员变量?

解决方案 »

  1.   


    package test;
    public class Test {

    private static int a = 10;
    private int b;

    public static void main(String[] args)  {
    Test t = new Test();
    t.b = 20;
    Inner inner = t.new Inner();
    inner.f();
    }

    class Inner {
    public void f() {
    System.err.println(Test.a);
    System.err.println(b);
    }
    }
    }
      

  2.   

        当然可以,java支持在一个累中声明另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。声明内部类如同在类中声明的方法或成员变量一样,一个类把内部类看做自己的成员。内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。
        内部类的类体重不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员