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