如何访问单独类中的方法



我正在尝试访问单独类中的公共方法,但由于某种原因,Netbeans 找不到它。 它们在同一个项目中并打包在一起。 错误消息说它正在我从中调用它的类 (Project6) 中查找它。 关于如何让它在正确的类(哈希表)中查看的任何想法?

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
        }
    }
}
public HashTable不是

方法;它是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));

方法

public HashTable(int size)

是 HashTable 类的构造函数,需要用关键字 new 调用。代码将是:

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
    }
}

}

最新更新