Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么从其他类调用此方法时遇到问题?_Java_Static - Fatal编程技术网

Java 为什么从其他类调用此方法时遇到问题?

Java 为什么从其他类调用此方法时遇到问题?,java,static,Java,Static,我是一名八年级学生,java项目的截止日期很紧。我的GUI已经准备就绪,除了我需要从两个文本字段中获取两个值,并在按下按钮时将它们发送到另一个类中的方法。调用所需的方法时遇到问题。所有重要代码如下 试图调用该方法的代码: private void GoButtonActionPerformed(java.awt.event.ActionEvent evt) { String Ntextfield = N

我是一名八年级学生,java项目的截止日期很紧。我的GUI已经准备就绪,除了我需要从两个文本字段中获取两个值,并在按下按钮时将它们发送到另一个类中的方法。调用所需的方法时遇到问题。所有重要代码如下

试图调用该方法的代码:

 private void GoButtonActionPerformed(java.awt.event.ActionEvent evt) {                                         

    String Ntextfield = NumberTextField.getText();
    n = Integer.parseInt(Ntextfield);

    String Rtextfield = RateTextField.getText();
    r = Integer.parseInt(Rtextfield);
    //call PermMath class
    PermMath doTheMath = new PermMath();
    doTheMath.permutations(int n, int r);
}  
我尝试调用的方法:

class PermMath {
  static long factorial(int num){
      //other code is here
  }
  static long permutations(int n, int r){
        //code I want to call is here
  }
}

给您的提示是
static
关键字。了解它的含义和工作原理

此外,您甚至在声明变量之前就已经使用了变量
n
r

n = Integer.parseInt(Ntextfield); 
应该在您完成类似
intn=0的操作之后出现

调用方法时,不声明参数。下面的答案是错误的

doTheMath.permutations(int n, int r);
相反,你会做类似的事情

doTheMath.permutations(n, r);

给您的提示是
static
关键字。了解它的含义和工作原理

此外,您甚至在声明变量之前就已经使用了变量
n
r

n = Integer.parseInt(Ntextfield); 
应该在您完成类似
intn=0的操作之后出现

调用方法时,不声明参数。下面的答案是错误的

doTheMath.permutations(int n, int r);
相反,你会做类似的事情

doTheMath.permutations(n, r);

您已经在
PermMath
类中声明了
static
方法-这些方法不需要调用类的实例化。您只需用以下方式称呼他们:

PermMath.permutations(n,r);

请在以下位置查看此跟踪:

您已经在
PermMath
类中声明了
static
方法-这些方法不需要调用类的实例化。您只需用以下方式称呼他们:

PermMath.permutations(n,r);

查看以下曲目:

在我看来,您有两个错误:

  • 您正在传递两个名为
    n
    r
    的临时整数,而不是传递前面在
    GoButtonActionPerformed
    函数中修改的两个整数
  • permutations
    函数是静态的,因此不需要实际创建
    PermMath
    类的实例 将函数调用更改为此应执行以下操作:

    PermMath.permutations(n, r);
    

    在我看来,你有两个错误:

  • 您正在传递两个名为
    n
    r
    的临时整数,而不是传递前面在
    GoButtonActionPerformed
    函数中修改的两个整数
  • permutations
    函数是静态的,因此不需要实际创建
    PermMath
    类的实例 将函数调用更改为此应执行以下操作:

    PermMath.permutations(n, r);
    

    请注意,如果
    PermMath
    位于定义
    gobuttonActionExecuted(…)
    的类之外的另一个包中,则由于方法甚至类上缺少
    public
    访问修饰符,因此它将不可见

    顺便说一句,在Java中,方法名称应该以小写字母开头。虽然您的风格是有效的,但遵循约定的代码使其他Java开发人员更容易阅读您的代码


    另一件事:您不使用
    置换(…)
    的返回值。这可能不是有意的。

    请注意,如果
    PermMath
    位于定义
    gobuttonActionExecuted(…)
    的类之外的另一个包中,那么它将不可见,因为方法甚至类上都没有
    公共
    访问修饰符

    顺便说一句,在Java中,方法名称应该以小写字母开头。虽然您的风格是有效的,但遵循约定的代码使其他Java开发人员更容易阅读您的代码



    另一件事:您不使用
    置换(…)
    的返回值。这可能不是有意的。

    我真的不知道他们教八年级学生Java:)到目前为止,您还没有解释您遇到的问题或错误。您是否遇到异常?代码不会编译吗?结果不是你所期望的吗?等等,帮助我们帮助你。@adarshr,我上的是特许学校,所以我们可以学习我们想学的东西,这样我们就可以把它应用到我们想做的事情上。只是说..@CodeAdmiral真是太棒了!我希望我能接受那种教育@是的,我不得不放弃我的社交生活。Java是值得的:)我真的不知道他们教八年级学生Java:)到目前为止,你还没有解释你遇到的问题或错误。您是否遇到异常?代码不会编译吗?结果不是你所期望的吗?等等,帮助我们帮助你。@adarshr,我上的是特许学校,所以我们可以学习我们想学的东西,这样我们就可以把它应用到我们想做的事情上。只是说..@CodeAdmiral真是太棒了!我希望我能接受那种教育@是的,我不得不放弃我的社交生活。Java是值得的:)等等,我还需要PermMath doTheMath=new PermMath()@不,因为这将创建PermMath类的新实例。由于PermMath中的函数是静态的,因此无需创建实例,您只需按照示例代码所示调用它们即可。谢谢,这回答了我的问题。假设它在两分钟内不允许我接受它,那么请稍等。等等,我还需要PermMath doTheMath=new PermMath()@不,因为这将创建PermMath类的新实例。由于PermMath中的函数是静态的,因此无需创建实例,您只需按照示例代码所示调用它们即可。谢谢,这回答了我的问题。假设它在两分钟内不会让我接受它,所以请稍等。哦,它们是在main()中声明的,main()调用GUI类。变量会转移吗?+1用于发现
    doTheMath.置换(int n,int r)呼叫。我很尴尬,我没有看到…:(哦,它们是在main()中声明的,main()调用GUI类。变量会转移吗?+1用于发现