配列を使用していくつかのプリム番号を見つける次のコードを取得しました。ただし、ユーザークラス PalindromeArrayUser をコンパイルしようとすると、「クラス内のコンストラクターは指定された型に適用できません」と表示されます
必須: int. 見つかりました: 引数がありません。理由: 実引数リストと仮引数リストの長さが異なります。
ただし、コンストラクターに int 値を渡しました (設計図で設計したのと同じ方法です)。問題がどこから来たのかよくわかりません。ありがとう。
これが私の2つのクラスです
public class PalindromeArray
{
int arrLength;
public PalindromeArray(int InputValue)
{
arrLength = InputValue;
}
int arr[] = new int[arrLength];
boolean check[] = new boolean [arrLength];
public void InitializeArray()
{
for (int k = 2; k < arr.length; k++)
{
arr[k] = k;
check[k] = true;
}
}
public void primeCheck()
{
for (int i = 2; i < Math.sqrt(arr.length - 1); i++ )
{
if (check[i] == true)
{
for (int j = 2; j < arr.length; j++)
{
if (j % i == 0)
{
check[j] = false;
check[i] = true;
}
}
}
}
}
public void PrintArray()
{
for (int k = 2; k < arr.length; k++)
{
if ((!check[k]) == false)
System.out.println(arr[k]);
}
}
}
そして、これが問題の原因となる私の User クラスです。上記のクラスは正常にコンパイルされます。
import java.io.*;
public class PalindromeArrayUser extends PalindromeArray
{
public static void main(String argv[]) throws IOException
{
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please enter the upper bound.");
String line = input.readLine();
int InputUser = Integer.parseInt(line);
// this is where I pass the same int type as I
// constructed it
PalindromeArray palindrome = new PalindromeArray(InputUser);
palindrome.InitializeArray();
palindrome.primeCheck();
palindrome.PrintArray();
}
}