2017-08-19 5 views
0

このメソッドのシグネチャがどのようなものかわかりません。私はいくつかの例と説明をオンラインで検索したが、見つからなかった。'new Class()'をパラメータとして持つメソッドのシグネチャ

コードの行:

Circle sum = Circle.add(new Circle(), new Circle()); 

私は、addメソッドのシグネチャはパラメータとして「新しいサークル()」でのように見えるだろうかと思いまして。

答えて

4

このAPIを知らなくても、次のヒントを使用することができます。このメソッドは、タイプCircleの二つのパラメータ(またはそれ以上...)を受け取り、タイプCircleのオブジェクトを返します

  • を。
  • それはstatic方法

でなければならないので、この方法は、したがって、このメソッドのシグネチャは次のようになります、Circle.add(...)を通じてアクセスされる:

public static Circle add(Circle c1, Circle c2); 

または

public static Circle add(Circle... circles); 

(メソッドのアクセス修飾子はpublic以外でもかまいません)

+2

私は静的だと思っていますが、そうでなければこれです。なぜいいと思うのかの説明。 – user2478398

+1

@ user2478398ありがとうございます、あなたが正しいです、私はこのメソッドにアクセスする方法を忘れてしまった。私は答えを更新しました。 –

+1

2つ以上の 'Circles'が許される場合、@ YCF_Lのvarargsの使用を含めるように更新しました –

1

署名は、おそらくです:

add(Circle, Circle) 

new Circle()がno-のparamsコンストラクタ呼び出しです。単にあなたのクラスconscructorは次のように2 Circleを取ることができ

public class Circle{ 

    public Circle() { 
    } 

    public static Circle add(Circle...circles){ 
     Circle c = ...; 
     //do soemthing 
     return c; 
    } 
} 

または:それは同じオブジェクトCircleオブジェクトを取るので

1

は、私もそれがCirclearrayを取り、このような終わりでCircleオブジェクトを返すことができます示唆しますこれは:

public class Circle{ 

    public static Circle add(Circle c1, Circle c2){ 
     Circle c = ...; 
     //do soemthing 
     return c; 
    } 
} 
関連する問題