我被困在作业上,主要是因为我的教科书和课堂材料中极度缺乏示例甚至相关图表。
我按照我的方式构建程序的原因是因为我需要使用 4 个方法:一个执行所有其他方法的 main 方法、一个检索输入法、一个检查方法和一个显示方法。我喜欢听到有关最佳实践的信息,但我不得不像这样编写代码。
我的主要问题是我拥有的抽象类。我在一种方法中编写的任何变量都无法在另一种方法中解析,我不知道如何使变量成为全局变量。
其次,代码无法编译,我发现的示例没有经典的 main,我真的不知道如何使 main 实现方法,或者使编译器对抽象感到满意。
也不知道如何获取我的布尔结果并使用它在显示方法中显示结果。是的,它很笨,我宁愿在检查方法中这样做。
我所知道的一切是我的“逻辑”到目前为止有效。我认为。任何帮助我指出正确方向的帮助将不胜感激。如果你是一种没有抽象类的方法,我很乐意听到它,我认为抽象是不必要的。
到目前为止,这是我的怪物:
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
}
}