教科書やクラスの資料に例や関連する図が極端に不足していることが主な原因で、課題に行き詰まっています。
私がこのようにプログラムを構成した理由は、他のすべてのメソッドを実行する main メソッド、retrieve 入力メソッド、check メソッド、および display メソッドの 4 つのメソッドを使用する必要があるためです。ベスト プラクティスについて聞くのは大好きですが、このようなコーディングを余儀なくされています。
私の主な問題は、私が持っている抽象クラスです。あるメソッドで記述した変数は、別のメソッドでは解決できません。変数をグローバルにする方法がわかりません。
第二に、コードはコンパイルされません。私が見つけた例には古典的なメインがありません。メイン実装メソッドを作成する方法や、コンパイラを抽象化に満足させる方法が本当にわかりません。
また、ブール値の結果を取得し、それを使用して表示方法で結果を表示する方法についての手がかりもありません。はい、それは愚かです。私はむしろチェックメソッドでそれを行いたいです。
スーについて私が知っているのは、これまでのところ私の「ロジック」が機能するということだけです。おもう。私を正しい方向に向けるための助けがあれば、大歓迎です。抽象クラスなしでこれを行う方法がある場合は、ぜひ聞いてみたいと思います。抽象化は不要だと思います。
これまでの私のモンスターは次のとおりです。
import javax.swing.JOptionPane;
interface Palindrome {
void retrieveInput(String[] args);
boolean Check(String s);
void display();
}
abstract class Sub_Palindrome implements Palindrome {
public void retrieveInput(String[] args)
{
String Uinput;
int number1;
int digit1; // first digit
int digit2; // second digit
int digit3;
int digit4; // fourth digit
int digit5; // fifth digit
Uinput = JOptionPane.showInputDialog("Enter A 5 Digit Integer");
try { //Sanitize user input, make sure input entered is a number
number1 = Integer.parseInt(Uinput);
} catch (NumberFormatException String) {
JOptionPane.showMessageDialog(null, "Input invalid, please enter an integer",
"///-D-A-T-A---E-R-R-O-R-\\\\\\", JOptionPane.ERROR_MESSAGE);
return;
}
if (number1 < 10000 || number1 > 99999) { //Sanitize user input, make sure the given number is between 10000 and 99999
JOptionPane.showMessageDialog(null,
"The number entered must be between 10000 and 99999",
"///-D-A-T-A---E-R-R-O-R-\\\\\\", JOptionPane.ERROR_MESSAGE);
return;
}
}
public boolean Check(String s)
{
digit1 = number / 10000;
digit2 = number / 1000 % 10;
digit3 = number % 1000 / 100 % 10; // is the third digit even necessary?
digit4 = number % 10000 % 1000 % 100 / 10;
digit5 = number % 10000 % 1000 % 100 % 10;
if (digit1 == digit5 && digit2 == digit4)
return true;
else
return false;
}
public void display()
{
//display output text based upon result from IsPalinDrome
//after displaying result, start from the beginning and ask user to input data again
}
}