0

パラメータの受け渡しについて質問があります。この例では、methodTwo は methodOne を呼び出す必要がありますが、使用するのは x 値と y 値のみで、Color の色は使用しません。これを行おうとすると、Eclipse でエラーが発生します

。 methodOne のすべての引数を正確に使用しない場合、別の methodOne を呼び出しますか?

private void methodOne (double x, double y, Color color){
   statements...;
  }

private void methodTwo (x, y ){
  methodOne(x, y);
  statements...;
}
4

4 に答える 4

1

以下のようにあなたのコードで: -

  private void methodTwo (x, y ){
      methodOne(x, y);  //Now this will show error , because parameter not matching
      statements...;
    }

3 番目のパラメーターを渡したくない場合は、エラーが表示されます。nullしたがって、関数定義で3番目のパラメーターを使用していないため、3番目のパラメーターを渡す必要があり、目的のために渡すことができます。

イストソリューション:-

private void methodTwo (x, y ){
      methodOne(x, y,null); 
      //statements...;
    }

2番目のソリューションではmethodOne、以下のように2つのパラメーターでこれをオーバーロードできます:-

private void methodOne(double x, double y, Color color){
   //statements... same job;
  }

private void methodOne(double x, double y){
   //statements...same job;
  }

methodOne次のように2つのパラメーターを使用してメソッドを呼び出すと、次のようになります。

private void methodTwo (x, y ){
  methodOne(x,y); // Now the overloaded method will call
  //statements...;
}
于 2013-05-16T02:52:01.793 に答える
1

method1 を呼び出すには、すべてのパラメーターを使用する必要があります。(パラメータの順序とパラメータの型も重要です)

3 番目のパラメーターがない場合は、method1 を次のように使用できます。

private void methodTwo (x, y ){
  method 1(x, y, null);
  statements...;
}
于 2013-05-16T02:35:16.707 に答える
0

メソッド名は 1 語である必要があります。最後のパラメーターも指定する必要があります。

private void method1 (double x, double y, Color color){
   statements...;
  }

private void method2 (x, y ){
  method1(x, y, someColorOrNull);
  statements...;
}

JLS のセクション 3.8「識別子」から:

識別子は、Java 文字と Java 数字の無制限の長さのシーケンスであり、最初の文字は Java 文字でなければなりません。

Identifier:
    IdentifierChars but not a Keyword or BooleanLiteral or NullLiteral

IdentifierChars:
    JavaLetter
    IdentifierChars JavaLetterOrDigit

JavaLetter:
    any Unicode character that is a Java letter (see below)

JavaLetterOrDigit:
    any Unicode character that is a Java letter-or-digit (see below)
于 2013-05-16T02:35:00.967 に答える
0

メソッド 2 は、メソッド 1 のすべての引数を正確に使用しない場合、別のメソッド 1 を呼び出すことはできませんか?

できますが、次のようにメソッド 1 をオーバーライドする必要があります。

    private void method 1 (double x, double y, Color color){
       statements...;
      }

    private void method 1 (double x, double y){
       statements...;
      }

    private void method 2 (x, y ){
      method 1(x, y);
      statements...;
    }
于 2013-05-16T02:37:06.493 に答える