2016-11-18 29 views
0

だから、私はこのクラスであるクラスから別のクラスにメソッドを呼び出すにはどうすればよいですか?

Public class Java2MySql { 
    public static void main(String[] args) { 
     Java2MySql j = new Java2MySql(); 
     ... 
    } 
    public static String selectValue() { 
     BlackBox blackBox = new BlackBox(); 
     ... 
     switch(case) { 
      case "C00": 
       caixaNegre.waste(); 
       break; 
     } 
    } 

そして、この他のクラス

public class CaixaNegre{ 
    public static String waste(){ 
    ... 
    } 
} 

を働いている事は、私はそれが正しいことだと思うで、NetBeansはエラーが表示されませんが、私が実行しようとしたら、それは私のデータベースでそれをテストする端末で、それは次のメッセージを表示します:

Java2MySql.java:50: error: cannot find symbol 
    CaixaNegre caixaNegre = new CaixaNegre(); 
    ^
symbol: class CaixaNegre 
location: class Java2MySql 

なぜですか?

+0

「Java2MySql」クラスのコードを少なくとも50行まで表示してください –

+0

これはMySqlと何が関係していますか? – OldProgrammer

+0

'caixaNegre.waste();' try; 'CaixaNegre.waste();'の代わりに、 'waste()'メソッドが静的なのでオブジェクト呼び出しではなくクラス呼び出し –

答えて

1

クラスメソッドとオブジェクトメソッドには違いがあります。オブジェクトはクラスのインスタンスです。オブジェクトメソッドを呼び出すには、まずそのクラス(オブジェクト)のインスタンスが必要です。

waste()メソッドは静的メソッドです。つまり、クラスメソッドになります。クラスメソッドを呼び出すには、クラスのフルネーム(大文字と小文字を区別)+メソッド名を使用します。あなたの場合

、あなたが使用する必要があります。

CaixaNegre.waste(); 

代わり

caixaNegre.waste(); 

のを忘れないでください:静的であるすべては、クラスに属します。そうでないものはすべて、クラスのインスタンスに属します。

すべてのものを静的にするのではなく、クラスのオブジェクトインスタンスを作成することをお勧めします。この方法で、オブジェクト指向の方法でプログラミングしています。

私はあなたがしていることは分かりませんが、エラーのように、クラスCaixaNegreのインスタンスを作成しようとしています。その場合は、メソッドの無駄に静的キーワードを削除する必要があります。

エラー: CaixaNegreクラスはおそらく別のパッケージに入っていますか?もしそうなら、あなたはそれを輸入しましたか?

関連する問題