2016-09-02 5 views
-2

これは私が正しいことをしていないかどうか教えてください。これはStackOverflowに関する私の最初の質問です。とにかく、私はかなり徹底的に調査しましたが、私の問題に対する答えを見つけることができないようです。私がアクセスしたいメソッドは、Java(Jgrasp)ではアクセスされません。なぜ私は右の表記を使用しているように感じるので、私はなぜわからない。Java:メソッドにアクセスできない

//PROJECT EULER Problem #4 

//A palindromic number reads the same both ways. The largest palindrome made 
//from the product of two 2-digit numbers is 9009 = 91 × 99. 

//Find the largest palindrome made from the product of two 3-digit numbers. 

import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.List; 

public class PE4 

{ 


    public boolean isPalindrome(int five) 
    { 

     String word = Integer.toString(five); 

     if (word.length()==5 &&word.substring(0,2).equals(word.substring(3,5))) 
     return true; 

     else if(word.length()==6 &&word.substring(0,3).equals(word.substring(3,6))) 
     return true; 

     else 
     return false; 

    } 

    public static void NumberFinder() 
    { 

     for (int i=999; i>599; i--) 
     { 
     for (int j=999; j>i-300; j--) 
     { 

      if (isPalindrome(i*j)==true) 
      { 
       System.out.print(i + ", " + j + " = " + i*j); 
       break outerloop; 
       } 
     } 

     } 
     return 0; 
    } 


    PE4 tester = new PE4(); 
    tester.NumberFinder(); 


} 

私の質問を読んでいただきありがとうございます。

アンナ

+0

このコードはコンパイルされますか?私の推測はノーです。その場合は、コンパイルエラーを投稿してください。 –

+0

'main'メソッドは必要ありませんか? –

+0

非静的メソッド 'isPalindrome'が静的メソッドから呼び出されています。推奨される読解[クラスメンバーの理解](https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html) – copeg

答えて

0

mainメソッド内でトップレベルのコードを入れてください:

public static void main(String[] args) { 
    PE4 tester = new PE4(); 
    tester.NumberFinder(); 
} 

これはしかし、最初の一歩です。 NumberFinderメソッドからstaticも削除し、実際に回文数字を検出しないアルゴリズムを修正する必要があります。ヒント:new StringBuilder(word).reverse().toString().equals(word)

0

Javaでは、クラスメソッドスコープの外で実行できるコードはありません。クラスの主な機能は、プログラムの実行時にデフォルトで実行されます。したがって、クラスにmainメソッドを追加し、内部にNumberFinderメソッドを呼び出す必要があります。 もう一つのポイントは、NumberFinderは静的であるため、クラスのオブジェクトを作成せずにクラスで直接呼び出すことができる点です。 第3の点は、静的メソッドは非静的メソッドにアクセスできないため、isPalindromeメソッドも静的でなければならないという点です。

関連する問題