如何在单独的类中访问方法

时间:2016-05-20 21:49:27

标签: java class methods packaging

我试图在一个单独的类中访问一个公共方法但由于某种原因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
        }
    }
}

2 个答案:

答案 0 :(得分:1)

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));

答案 1 :(得分:0)

方法

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

}