前提・実現したいこと
Javaで修正方法が分かりません。
発生している問題・エラーメッセージ
ShowingPrimeNumber.java:7: エラー: setNumに適切なメソッドが見つかりません(引数がありません)
ShowingPrimeNumber.java:7: エラー: setNumに適切なメソッドが見つかりません(引数がありません) System.out.println("pn1にセットされている数値:"+pn1.setNum()); ^ メソッド NaturalNumber.setNum(int)は使用できません (実引数リストと仮引数リストの長さが異なります) メソッド PrimeNumber.setNum(int)は使用できません (実引数リストと仮引数リストの長さが異なります) エラー1個
該当のソースコード
Java
1class NaturalNumber{ 2 private int num = 1; 3 public void setNum(int n){ 4 if (n > 0){ 5 num = n; 6 } 7 } 8 public int getNum(){ 9 return num; 10 } 11 public NaturalNumber(){ 12 } 13 public NaturalNumber(int n){ 14 setNum(n); 15 } 16 } 17 18class PrimeNumber extends NaturalNumber{ 19 20 @Override 21 public void setNum(int n){ 22 for (int i=2; i<n; i++){ 23 if ( n % i == 0){ 24 setNum(n); 25 } 26 } 27 } 28 public PrimeNumber(){ 29 super(); 30 setNum(2); 31 } 32 public PrimeNumber(int x1){ 33 super(); 34 setNum(x1); 35 } 36} 37 38class ShowingPrimeNumber{ 39 public static void main(String[] args){ 40 41 PrimeNumber pn1 = new PrimeNumber(); 42 PrimeNumber pn2 = new PrimeNumber(37); 43 44 System.out.println("pn1にセットされている数値:"+pn1.setNum()); 45 46 pn1.setNum(10); 47 System.out.println("pn1にセットされている数値:"+pn1.getNum()); 48 49 pn1.setNum(19); 50 System.out.println("pn1にセットされている数値:"+pn1.getNum()); 51 52 System.out.println("pn2にセットされている数値:"+pn2.getNum()); 53 } 54}
試したこと
検索し、似たようなエラーの解決法がないか調べましたが見つかりませんでした。
自身でも修正したが解決できませんでした。
エラーが出ている箇所で、本当にsetNum()を使いたかったのでしょうか? 単純に、getNum()としたかったのをsetNum()と書いてしまってハマッているだけでは? ご自身がやろうとしていることを理解されていますか?
※しかし、それを直すと新たな問題に直面します。setNum()の中でまたsetNum()を呼んでます。
回答3件
あなたの回答
tips
プレビュー