-3

この過負荷プログラムの解決を手伝ってください

public class Overloading
{
void add()
{
    System.out.println("Default");
}
void add(int a)
{
    System.out.println("One Int Parameter is passed"+a);
}
void add(int a,int b)
{
    System.out.println("Two Int Parameter is passed"+a+" "+b);
}
    void add(int a,int b,int c)
{
    System.out.println("Three Int Parameter is passed"+a+" "+b+" "+c);
}
void add(char x)
{
    System.out.println("One Char Parameter is passed"+x);
}
void add(char x,char y)
{
    System.out.println("Two Char Parameter is passed"+x+" "+y);
}
    void add(char x,char y,char z)
{
    System.out.println("Three Int Parameter is passed"+x+" "+y+" "+z);
}
public static void main(String []args)
{
    Overloading d=new Overloading();
    d.add(z);
}
}

d.add(1) などを使用すると動作しますが、d.add("p") を使用すると動作しません Help me Guys .... 事前に感謝します

4

7 に答える 7

1

次のように呼び出すと機能します。

d.add('p');
于 2013-04-01T11:30:20.477 に答える
0

"1"は文字列で、'1'文字です。ここでは文字列ではなく文字が必要です。

そうする

d.add('p');
于 2013-04-01T11:26:12.580 に答える
0

これを試して:

d.add('p');

メソッドvoid add(char x)は、文字列ではなく文字をパラメーターとして受け取ります。'p'は文字"p"ですが、文字列です。

于 2013-04-01T11:26:24.323 に答える
0

おそらく、「p」が astringであるのに、 a を受け入れるメソッドしかないためcharです。別のオーバーロードが必要です:

void add(string s)
于 2013-04-01T11:26:24.647 に答える
0

に変更 d.add("p"); してください

 d.add('p');

char は "p" ではなく 'p' であるため (これは文字列型であり、add(string s){}関数が必要になるため、見逃してしまいます)、次のように追加することもできます。

void add(string s)
{
    System.out.println("One string Parameter is passed"+s);
}
于 2013-04-01T11:27:14.303 に答える
0

あなたが使用する必要があります、

d.add('p');

あなたのオーバーロードは文字列ではなく文字であるためです。

于 2013-04-01T11:27:15.493 に答える
0

この呼び出しを使用して:

d.add("p");// you are calling a add() with parameter of type string 

それほど多くのメソッドがないため、エラーが発生します。それを動作させるには、次を使用します。

d.add('p');// considered as char parameter

または、文字列パラメーター メソッドを次のように追加します。

void add(String x)
{ 
   System.out.println("One String Parameter is passed"+x);
}

それが役立つことを願っています!

于 2013-04-01T11:27:22.457 に答える