9

Java の内部的に何が優れているか、何が最適か、または標準は何ですか: 定数またはドット表記を使用してクラスを実装しますか?

例:

オプション1:

import com.myproject.Constantes;

public class myClass {
    myClass() {
        System.out.println("Math: " + Constantes.PI);
    }
}

オプション 2:

import com.myproject.Constantes;

public class myClass implements Constantes {

    myClass() {
        System.out.println("Math: " + PI);
    }
}

どちらが優れているのか、その理由は? MVJ の使用、リソース、速度は?

4

6 に答える 6

9

Constantes(名前が示すように) 純粋に定数のコレクションであり、 で公開する必要がある機能を定義していない場合myClass、A) であってはならずinterface、B) 実装/拡張してはなりません。それをインポートして、オプション 1 のように使用します。

于 2012-10-29T10:49:27.267 に答える
4

OPTION 1は、現在のクラスで内部的に定義されている別のPIを間違えないようにするために使用する必要があると思います。

于 2012-10-29T11:01:25.703 に答える
3

オプション 1 を使用する必要があります。これは、インポートされたクラスで定義された定数を明確に使用するためです。

myClass に PI というローカル変数がある場合、オプション 2 は、インポートされたクラスの変数ではなく、その変数を使用します。

于 2012-10-29T10:51:12.597 に答える
1

多くの場合、明快さはパフォーマンスよりも重要であり、これも例外ではありません。

オプション 1 はオプション 2 よりも優先されます。オプション 2 はmyClass意味をなさないConstantesことを意味するからです。

Java 5.0 からは、より良い別のオプションがあります。

import static com.myproject.Constantes.PI;
// OR
import static com.myproject.Constantes.*;

public class MyClass{
  MyClass(){
       System.out.println("Math: " + PI);
  }
}
于 2012-10-29T10:51:36.607 に答える
1

ここでは 2 つの異なることを行っています。最初のフラグメントでは、たまたまConstantesクラス/インターフェース内のものを参照するコードを記述しているためimport、'ed にする必要がありますが、2 番目のフラグメントでは、コードがConstantesインターフェースに準拠する必要があることを述べています。その中のすべてのメソッド。

乾杯、

于 2012-10-29T10:50:39.997 に答える
1

implements(クラスではなくインターフェイス)は、(通常、クラスに実装する必要があるいくつかのメソッド仕様で)myClassによって指定された契約を尊重する必要があることを示しています。Constantes

特定の言語の特殊性に入る前に、オブジェクト指向プログラミング (Programación Orientada a Objetos) の概念について確認してください。

于 2012-10-29T10:50:45.623 に答える