2012-02-06 13 views
-5

時には我々はにClassAから行うことができます。Javaの静的インポート

import com.software.ClassB; 
    classbObject = new ClassB ; 
    ClassB.getMethodX(); 

、我々はまたにClassAから直接、クラスまたは呼び出し(これら2例の間diffrenceで直接

import com.software.ClassB; 
classbObject = new ClassB ; 
classbObject.getMethodX(); 

何作ることができますオブジェクト)? 1つは推奨されていますか? ありがとう、

答えて

1

あなたはなぜこの意味:

ClassB.getMethodX() 

は、この異なっているの?

classbObject.getMethodX() 

もしそうなら、2番目は何とか間違っています。私はまだそれが動作することを意味しますが、それは理にかなっていません。このメソッドはstaticとして宣言されています。これはクラスに属しています。いくつのインスタンスに関係なく、クラスに対して1つの静的メソッドがあります。あなたは私が意味するものと同じものを意味する場合 ClassB.getMethodX()

+0

ユージン、私はclassbObject = new ClassBを追加することで質問を更新しました。 – lola

+0

@ lola答えはまだ同じです。あなたのgetMethodX()メソッドのような静的な権利ですか?クラスやオブジェクトから呼び出す方法が不思議ですか?もしそうなら、私が言ったように、クラスから推薦されます。 – Eugene

0

ClassB classbObjectをインポートせずに実行できる唯一の方法は、それらが同じパッケージに含まれている場合です。あなたが質問している場合は、インポートを使用する必要がある場合は、クラスが同じパッケージにないため、インポートが必要な場合はインポートを使用します。

あなたの質問に静的なインポートが表示されないので、あなたの質問にどのように関連しているか分かりません。

2

::だから、すべての静的メソッドは、静的な方法で呼び出されるべきgetMethodXが静的​​であるため、ノー、ClassB.getMethodX()classbObject.getMethodX()の間には機能的な違いはありません。コンパイラのみが、非静的コンテキストからの静的メソッド呼び出しのためにclassbObject.getMethodX()が推奨されないという警告を表示することがあります。

+0

違いがないのにインスタンスを介して静的メソッドを呼び出すのはお勧めできません。 –

+0

Eclipseのような特定のIDEは、このようにして警告を出します。 – belgther