Java 我在打印实例方法和类方法时遇到问题
因此,我正在使用的代码应该检查一个数字是否为素数,然后我需要打印出结果,它是否为素数?从我的实例和类方法。我有麻烦,因为我觉得我设置的一切都是正确的,但当我运行程序时,却没有得到任何结果。我会接受任何建议。对我放松点这是我第一年编程Java 我在打印实例方法和类方法时遇到问题,java,methods,instance,class-method,Java,Methods,Instance,Class Method,因此,我正在使用的代码应该检查一个数字是否为素数,然后我需要打印出结果,它是否为素数?从我的实例和类方法。我有麻烦,因为我觉得我设置的一切都是正确的,但当我运行程序时,却没有得到任何结果。我会接受任何建议。对我放松点这是我第一年编程 import java.io.IOException; import java.util.Scanner; public class Assignment4 { public static void main(String[] args) throws I
import java.io.IOException;
import java.util.Scanner;
public class Assignment4 {
public static void main(String[] args) throws IOException {
Scanner myInput = new Scanner(System.in);
int someValue = myInput.nextInt();
MyInteger myInt = new MyInteger(someValue);
System.out.println("Testing instance method:");
System.out.println(myInt.isPrime());
System.out.println("Testing class method:");
System.out.println(MyInteger.isPrime(myInt));
}
}
class MyInteger {
private int value;
public MyInteger(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public boolean isPrime() {
int sqrt = (int) Math.sqrt((double)value);
for(int i = 2; i <= sqrt; i++) {
if (value % i == 0) return false;
}
return true;
}
public static boolean isPrime(MyInteger myInt) {
return myInt.isPrime();
}
}
import java.io.IOException;
导入java.util.Scanner;
公共课堂作业4{
公共静态void main(字符串[]args)引发IOException{
扫描仪myInput=新扫描仪(System.in);
int someValue=myInput.nextInt();
MyInteger myInt=新的MyInteger(someValue);
System.out.println(“测试实例方法:”);
System.out.println(myInt.isPrime());
System.out.println(“测试类方法:”);
System.out.println(MyInteger.isPrime(myInt));
}
}
类MyInteger{
私有int值;
公共MyInteger(int值){
这个值=值;
}
public int getValue(){
返回值;
}
公共布尔isPrime(){
intsqrt=(int)Math.sqrt((双)值);
对于(inti=2;i程序运行良好,并且一切正常,我认为您没有向程序提供输入
运行程序,在屏幕/控制台上写入任何数字,按enter键,您将看到输出
下面是工作屏幕截图:您的类方法在您编写它的方式上没有任何好处
您必须传递一个int
,而不是MyInteger
像这样:
public static boolean isPrime(int integer) {
MyInteger myInt = new MyInteger(integer);
return myInt.isPrime();
}
而且你的代码也在工作
“没有结果”是什么意思?完全没有打印?请在运行程序时显示您实际看到的内容。请相应地阅读并增强您的问题。@GhostCat:事实上,这是一个有效的MCVE。我相应地增加了问题的投票数,并鼓励您这样做。我猜他运行的程序是错误的。程序是正确的,一旦您键入一个数字d点击回车键,结果就在那里。public静态布尔值isPrime(MyInteger myInt){return myInt.isPrime();}
没有任何意义,因为我们可以简单地编写myInt.isPrime()而不是MyInteger.isPrime(myInt)
。该方法可能应该将int
而不是MyInteger
作为参数,然后将其包装在MyInteger
中,并返回其isPrime
的结果,如返回新isPrime(intValue).isPrime();
。