我是Java的初学者,我有一个任务要做,即根据数组的随机生成的值计算素数之和。
所以,我被告知我应该上3节课:
1)MyArray-我已经在其中编写了以下代码:
...
public int[] createArray(int n) {
int[] a = new int[n];
for (int i = 0; i < a.length; i++) {
a[i] = rnd.nextInt(10);
}
return a;
}
...
2)IsPrime-在这里我应该检查数字是否为质数。问题是我不知道如何将数组从MyArray“连接”到IsPrime类。我从一个布尔方法checkPrime开始,该方法有一个MyArray类的对象m作为参数,但是我不知道如何继续,如何从IsPrime类访问数组。
我感谢您提出的任何意见和建议。谢谢!
P.S。 我的第三类Run.java具有主要方法。
答案 0 :(得分:1)
基本上应该是这样的:
MyArray myArray = new MyArray();
IsPrime isPrime = new IsPrime();
int sum = 0;
for(int num : myArray.createArray(20)){
if(isPrime.checkPrime(num)){
sum += num;
}
}
System.out.println(sum);
将其放入Run类的主要方法中
答案 1 :(得分:0)
您可以从Run Class调用IsPrime方法,如下所示
Class Run {
public static void main(String[] args]) {
IsPrime ip=new IsPrime();
int sum= ip.checkPrime();
System.out.print(sum);
}
}
Class IsPrime {
public int checkPrime(int length){ MyArray m=
MyArray (); int[] arr = m.createArray(5);
//iterating arr and call to isPrime() method
}
public boolean isPrime(int num){
// prime checking logic
}
}
答案 2 :(得分:0)
您应该在类中声明拥有数组的位置。 在isPrime类中,您应该声明一个方法,该方法将参数int []中接收的所有素数相加。 出于一个想法,并且为了更快起见,您可以使用ForkJoinPool创建多个线程,但是我认为当前这不是您的主要目标。
public class YourClass{
private int[] MyArray;
//Constructor
//Methods
//Getter of MyArray
public int[] getMyArray(){
return this.MyArray;
}
};