2016-05-20 1 views
0

別のクラスのパブリックメソッドにアクセスしようとしていますが、なんらかの理由でNetbeansが見つかりません。彼らは同じプロジェクトにあり、一緒にパッケージ化されています。エラーメッセージは、私が(Project6)から呼び出しているクラスでそれを探していると言います。適切なクラス(HashTable)を表示するには、どのようにすればいいですか?別のクラスのメソッドにアクセスする方法

class HashTable { 

    //..... 

    public HashTable(int size) { 
     arraySize = size; 
    } 
} 

public class Project6 implements ActionListener { 

    //..... 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     if (e.getSource() == hashButton) { 
      text = hashSizeField.getText(); 
      HashTable(Integer.parseInt(text)); //error occurs here 
     } 
    } 
} 
+0

、それはコンストラクタ –

答えて

0

方法

public HashTable(int size) 

は、クラスハッシュテーブルのコンストラクタで、あなたはキーワード新しいで呼び出す必要があります。コードは次のようになります

class HashTable { 


    public HashTable(int size) { 
    arraySize = size; 
    } 
} 

public class Project6 implements ActionListener { 

//..... 

@Override 
public void actionPerformed(ActionEvent e) { 
    if (e.getSource() == hashButton) { 
     text = hashSizeField.getText(); 
     new HashTable(Integer.parseInt(text)); //error occurs here 
    } 
} 

}

public HashTable
+0

だが、完全にその母のおかげで見落とさ! –

1

の方法ではありません。これはHashTableクラスのコンストラクタです。あなたがHashTableのインスタンスを作成したい場合は、newキーワードでそうすることができます。

HashTable h = new HashTable(Integer.parseInt(text)); 

あなたがオブジェクトインスタンスなしでメソッドを呼び出ししようとしている場合、あなたはそれをstatic voidを宣言する必要があります。

public static void HashTable(int size) { 
    arraySize = size; 
} 

ただし、別のメソッド名を使用するのが最善です。 HashTableは、コンストラクタ名と同じであるため、コンパイラの警告が発生します。そして、慣例により、メソッド名は小文字で始まるべきです。

あなたの静的メソッドを持っていたら、このようなあなたの他のクラスからそれを呼び出すことができます。

方法はありません
HashTable.someMethod(Integer.parseInt(text)); 
+0

まったく見落としたことがありました! –

関連する問題