如何在内部类中调用outter类的构造函数

时间:2017-03-25 13:45:00

标签: java android

public class foo {
    class bar{
        public bar(String str) {
            this("hello", str);
        }
    }

    public foo(String a, String b) {
        System.out.println(a+","+b);
    }
}

有没有办法在bar中调用foo的构造函数?

3 个答案:

答案 0 :(得分:1)

你的意思是:

public class foo {

    private String var1;//<<----------
    private String var2;//<<----------

    class bar {

        public bar(String str) {
            foo f = new foo(str, str);//<<----call your constructor 
        }
    }

    public foo(String a, String b) {
        System.out.println(a + "," + b);

        //set values to your attribute
        this.var1 = a;//<<------------set value 1
        this.var2 = b;//<<------------set value 2
    }
}

答案 1 :(得分:0)

只需这样做

      foo obj = new foo("hello", "world");

答案 2 :(得分:0)

Link to the Java documentation

  

InnerClass的一个实例只能存在于一个实例中   OuterClass并且可以直接访问其方法和字段   封闭实例。

     

要实例化内部类,必须首先实例化外部   类。然后,使用它在外部对象中创建内部对象   语法:

     

OuterClass.InnerClass innerObject = outerObject.new InnerClass();

foo的构造函数接受2个参数,因此您必须提供它们来创建其对象。 您还可以创建一个空构造函数,然后按以下方式使用它

//实例化外部类

foo outer = new foo();

//实例化内部类

foo.bar inner = outer.new bar(&#34; world&#34;);