7

私は最近、PHP での作業から Java に切り替えて、クエリを実行しました。私は Java の初心者であることを強調したいと思います。

基本的に、私はファイル A (クラス A) で作業しており、ファイル B (クラス B) に保存されている静的メソッドを参照したいと考えています。クラス A を使用する場合、ファイル B を参照する必要がありますか? (私はPHPのrequire_onceの行に沿って考えています)クラスAの私のコードは次のとおりです:

Public class A{
String[] lists = B.staticMethod();
}

Eclipse は B をクラスとして認識していません。静的メソッドにアクセスするには、B のインスタンスを作成する必要がありますか? 私は本当に何かを見落としているように感じ、どんな意見もいただければ幸いです。

4

3 に答える 3

15

B.staticMethod への適切なアクセス権があることを確認してください。おそらくそれを次のように宣言します

public static String[] staticMethod() {
    //code
}

また、クラスBをインポートする必要があります

import foo.bar.B; // use fully qualified path foo.bar.B

public class A {
    String[] lists = B.staticMethod();
}
于 2013-09-16T17:38:52.073 に答える
2

静的メソッドを呼び出すためにクラスのインスタンスを作成する必要はありませんが、クラスをインポートする必要があります。

package foo;

//assuming B is in same package
import foo.B;

Public class A{
  String[] lists = B.staticMethod();
}
于 2013-09-16T17:39:21.720 に答える
1

Java には、PHP のオートローダに似たクラスローダ メカニズムがあります。includeこれは、または関数のようなものは必要ないことを意味しますrequire。使用するクラスが「クラスパス」上にある限り、それらは見つかります。

importステートメントを使用する必要があると言う人もいます。それは真実ではない; import毎回パッケージ名を繰り返す必要がないように、短い名前でクラスを参照する方法を提供するだけです。

たとえば、ArrayListおよびDateクラスで動作するプログラムのコードは、次のように記述できます。

java.util.ArrayList<java.util.Date> list = new java.util.ArrayList<>();
list.add(new java.util.Date());

パッケージ名を繰り返すのはしばらくすると面倒になるのでimport、これらのクラスを短い名前で参照したいことをコンパイラに伝えるために使用できます。

import java.util.*;
....
ArrayList<Date> list = new ArrayList<>();
list.add(new Date());
于 2013-09-16T17:46:50.390 に答える