0

次の問題を解決するにはどうすればよいconstructor overloadingですか? これはインタビューの質問ですが、解決策を知りたいです。

class Player
{
    int nationalRank;
    int internationalRank;
    String name;

    Player(String name, int nationalRank)
    {
        this.name= name;
        this.nationalRank = nationalRank;
        this.internationalRank=0;
    }

    Player(String name, int internationalRank)
    {
        this.name= name;
        this.nationalRank = 0;
        this.internationalRank=internationalRank;
    }
}

ここでは、引数の型が両方のコンストラクターで同じであるため、コンパイラーはエラーを出します。しかし、論理的には両者は異なります。余分な引数を追加せずにこの問題を解決するにはどうすればよいですか? これ専用のデザインパターンはありますか?

4

4 に答える 4

0

コンストラクターの1つのパラメーターを逆にするだけで、準備完了です....私はこれがインタビューの質問だと思ってこの回答を作成しました....おそらくインタビュアーはこれを念頭に置いています...

 class Player
    {
        int nationalRank;
        int internationalRank;
        String name;

        Player(String name, int nationalRank)
        {
            this.name= name;
            this.nationalRank = nationalRank;
            this.internationalRank=0;
        }

        Player( int internationalRank,String name)
        {
            this.name= name;
            this.nationalRank = 0;
            this.internationalRank=internationalRank;
        }
    }
于 2013-06-07T07:33:26.100 に答える