无法访问另一个类中的函数

时间:2017-08-14 16:29:17

标签: java function class methods

****编辑**对于每个人都这么称之为

FunctionTestTest.numberCheck(userNumber);

我在这里发帖之前已经尝试了很多次但它没有用。

人们倒下了一个他们甚至无法回答的问题,很棒......

在另一个项目上,我正在努力,我无法从另一个类调用函数。一直试图修复它。决定抛出几行代码&尝试从另一个类调用一个函数,以确保我的主项目中没有未被注意的语法错误。

任何人都可以看到问题在这里吗?

返回此错误:

cannot find the symbol
symbol: class FunctionTestTest
location: class FunctionTest

...

public class FunctionTest{ 
  public static void main(String[] args){        

    Scanner input = new Scanner(System.in);

    int userNumber = 0;

    System.out.println("Please enter a number between 1 - 10");
    userNumber = input.nextInt();
    FunctionTestTest ft = new FunctionTestTest();
    FunctionTestTest.numberCheck(userNumber);

  }
}

和..

public class FunctionTestTest{

  public static void main(String[] args){
  }

  public static void numberCheck(int num){
    if (num == 1){
        System.out.println("function works");
    }
  }
}

3 个答案:

答案 0 :(得分:1)

导致错误是因为您可能正在使用其他程序包中的类。在这种情况下,您必须先使用它进行导入。

如果您使用的是任何IDE,则应该有一个热键来解决您的问题。

也...

您无需创建对象实例来访问某些类的静态方法。只需使用:

FunctionTestTest.numberCheck(userNumber);

不推荐,但您可以在对象实例上调用静态方法,如:

new FunctionTestTest().numberCheck(userNumber);

答案 1 :(得分:0)

这里你正在调用其他类构造函数,并且不在那里:

FunctionTestTest ft = new FunctionTestTest(userNumber);

还检查FunctionTestTest类是否存在其他包然后导入

答案 2 :(得分:0)

  

英尺(userNumber);

您的方法调用不正确。 您可能需要ft.numberCheck(userNumber)FunctionTestTest.numberCheck(userNumber)。后者是首选,因为你正在引入一个静态成员。

如果是静态方法,您只需将其命名为:

ClassName.methodName();

没有必要像对象一样使用静态方法实例化对象。

示例:

public class MyClass{
    public static void myMethod(){
        //do whatever..
    }
}

public class OtherClass{
    public static void main(String[] args){
        MyClass.myMethod();  //invoke a static method from another class
    }
}