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