嵌套类java

时间:2015-03-10 20:38:19

标签: java nested-class

我有以下代码:

public class A
{
    private class B
    {
        public String a = "";
        public B(String a)
        {
          System.out.println("hello");
          this.a = a;
        }
    }

    public A()
    {
        System.out.println("bla");
        B b = new B("what's up?");
        System.out.println("world");
    }

    public static void main(String[] args)
    {
       new A();
    }
}

出于某种原因,仅打印“bla”,不打印其他打印件。 我正在使用动态类加载和调用main函数来加载带有jni的类文件。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

你去了,这段代码有效:

public class A
{
    static class B
    {
        public String a = "";
        public B(String a)
        {
          System.out.println("hello");
          this.a = a;
        }
    }

    public A()
    {
        System.out.println("bla");
        B b = new B("what's up?");
        System.out.println("world");
    }

    public static void main(String[] args)
    {
       new A();
       A.B myAB = new A.B("hello");
    }
}

输出:

bla
hello
world
hello

如果你想在B组打印实际字符串" a",然后将public String a = "";更改为System.out.println(a);,在这种情况下你会得到

bla
what's up?
world
hello

因为"what's up?"传递给class B

请参阅Javadocs了解嵌套类,我认为它会对你有所帮助:http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html