12

単一のオブジェクトを作成しながら、複数のコンストラクターを実行したい。たとえば、次のようなクラス定義があります-

public class Prg
{
    public Prg()
    {
        System.out.println("In default constructor");
    }
    public Prg(int a)
    {
        System.out.println("In single parameter constructor");
    }
    public Prg(int b, int c)
    {
        System.out.println("In multiple parameter constructor");
    }
}

そして、私は次のコードでそれを達成しようとしています -

public class Prg
{
    public Prg()
    {
        System.out.println("In default constructor");
    }
    public Prg(int a)
    {
        Prg();
        System.out.println("In single parameter constructor");
    }
    public Prg(int b, int c)
    {
        Prg(b);
        System.out.println("In multiple parameter constructor");
    }
    public static void main(String s[])
    {
        Prg obj = new Prg(10, 20);
    }
}

しかし、この場合、次のようなエラーが生成されます-

Prg.java:11: error: cannot find symbol
            Prg();
            ^
  symbol:   method Prg()
  location: class Prg
Prg.java:16: error: cannot find symbol
            Prg(b);
            ^
  symbol:   method Prg(int)
  location: class Prg
2 errors

ありがとう

4

5 に答える 5

14

コンストラクターthis()の代わりに使用するPrg()

于 2013-09-25T08:16:30.280 に答える
6

thisの代わりに使用Prg

    public Prg()
    {
        System.out.println("In default constructor");
    }
    public Prg(int a)
    {
        this();
        System.out.println("In single parameter constructor");
    }
    public Prg(int b, int c)
    {
        this(b);
        System.out.println("In multiple parameter constructor");
    }
于 2013-09-25T08:17:43.620 に答える
4

キーワードを使用しますthis。完全な実行コードは次のとおりです

public class Prg
{
    public Prg()
    {
        System.out.println("In default constructor");
    }
    public Prg(int a)
    {
        this();
        System.out.println("In single parameter constructor");
    }
    public Prg(int b, int c)
    {
        //Prg obj = new Prg(10, 20);

this(b);        System.out.println("In multiple parameter constructor");
    }
    public static void main(String s[])
    {
        Prg obj = new Prg(10, 20);
    }
}
于 2013-09-25T08:19:24.853 に答える
3

thisステートメントを使用する必要があります。

例えば

public Prg(int b, int c)
{
    this(b);
    System.out.println("In multiple parameter constructor");
}
于 2013-09-25T08:17:40.613 に答える
2

他のコンストラクターを呼び出すときthis()は、代わりに使用しますPrg()

于 2013-09-25T08:17:28.080 に答える