1

たとえば、次のメソッドがあるとします。

    public double[] getCoord(){
        return coord;
}

    public double getCoord(int variable){
        return coord[variable];
}

電話したほうがいいのかな

object.getCoord()[1]

また

object.getCoord(1)

なぜ?

4

4 に答える 4

4

パフォーマンスの違いはありませんが、Java 配列は常に可変であるため、2 番目の方法ははるかに優れた API を提供します。最初の API を使用すると、ユーザーは書き込みを行うことができます

object.getCoord()[1] = 12.345;

背後でオブジェクトの内部を変更します。これは決して良いことではありません。悪意のないユーザーでも、単純に誤って意図しないことを実行する可能性があります。

于 2013-04-19T01:18:16.440 に答える
1

性能的には申し分ありません。最初のメソッドは、コピーではなく、配列への参照を返します。

つまり、2 番目の方法は、配列がクラス外で変更されるのを防ぎます。

于 2013-04-19T01:18:17.943 に答える
0

いいえ、添字演算子 ( ) を使用すると、Java は配列全体を読み取りません[]。アクセサーメソッドを使用して最初に配列を取得し、次に配列にインデックスを付けるのではなく、同じことを行うメソッドを呼び出す方が良いでしょうか。おそらく無視できます。関数を呼び出していずれかの方法で結果を返すというオーバーヘッド (最小限の注意) が発生します。

于 2013-04-19T01:18:16.487 に答える