我在打印实例方法和类方法时遇到问题

时间:2017-11-19 18:30:22

标签: java methods instance class-method

所以我正在使用的代码应该检查一个数字是否为素数,然后我需要打印出结果,是否是素数?从我的实例和类方法。我遇到了麻烦,因为我觉得我正确地设置了一切,但是当我运行程序时,我没有得到任何结果。我会接受任何建议。对我而言这是我的第一年编程。

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

2 个答案:

答案 0 :(得分:0)

程序工作正常,一切都很好,我认为你没有给程序输入。

运行程序,在屏幕/控制台上写下任何数字,按回车键,然后你会看到输出。

以下是工作屏幕截图:enter image description here

答案 1 :(得分:0)

您的类方法对您编写它的方式没有任何好处。

您必须传递int而不是MyInteger

像这样:

public static boolean isPrime(int integer) {
    MyInteger myInt = new MyInteger(integer);
    return myInt.isPrime();
} 
  

而且你的代码也在运作