Java回文、方法和抽象类?
我被一项作业困住了,主要是因为我的课本和课堂材料中极度缺乏例子,甚至没有相关的图表 我这样构造程序的原因是因为我需要使用4种方法:执行所有其他方法的main方法、retrieve输入方法、check方法和display方法。我喜欢听到关于最佳实践的消息,但我不得不这样编写代码 我的主要问题是我拥有的抽象类。我在一个方法中编写的任何变量都无法在另一个方法中解析,我不知道如何使这些变量成为全局变量 其次,代码没有编译,我发现的示例没有一个经典的main,我真的不知道如何使main实现方法,或者使编译器对抽象感到满意 也没有关于如何获取布尔结果并使用它在display方法中显示结果的线索。是的,这太愚蠢了,我宁愿用检查法 对苏来说,我只知道我的“逻辑”到目前为止是有效的。我想。如果能帮我指出正确的方向,我将不胜感激。如果你是一种不用抽象类就能做到这一点的方法,我很想听听,我认为抽象是不必要的 到目前为止,这是我的怪物:Java回文、方法和抽象类?,java,methods,integer,abstract-class,palindrome,Java,Methods,Integer,Abstract Class,Palindrome,我被一项作业困住了,主要是因为我的课本和课堂材料中极度缺乏例子,甚至没有相关的图表 我这样构造程序的原因是因为我需要使用4种方法:执行所有其他方法的main方法、retrieve输入方法、check方法和display方法。我喜欢听到关于最佳实践的消息,但我不得不这样编写代码 我的主要问题是我拥有的抽象类。我在一个方法中编写的任何变量都无法在另一个方法中解析,我不知道如何使这些变量成为全局变量 其次,代码没有编译,我发现的示例没有一个经典的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
}
}
import javax.swing.JOptionPane;
界面回文{
无效检索输入(字符串[]args);
布尔检查(字符串s);
void display();
}
抽象类Sub_Palindrome实现了Palindrome{
公共void retrieveInput(字符串[]args)
{
字符串输入;
整数1;
int digit1;//第一个数字
int digit2;//第二位
int-digit3;
int digit4;//第四位
int digit5;//第五位
Uinput=JOptionPane.showInputDialog(“输入一个5位整数”);
请尝试{//清理用户输入,确保输入的输入是数字
number1=整数.parseInt(Uinput);
}catch(NumberFormatException字符串){
JOptionPane.showMessageDialog(null,“输入无效,请输入整数”,
“//-D-A-T-A--E-R-R-O-R-\”,作业窗格。错误消息);
返回;
}
如果(number1<10000 | | number1>99999){//清理用户输入,请确保给定的数字介于10000和99999之间
JOptionPane.showMessageDialog(null,
“输入的数字必须介于10000和99999之间”,
“//-D-A-T-A--E-R-R-O-R-\”,作业窗格。错误消息);
返回;
}
}
公共布尔检查(字符串s)
{
数字1=数字/10000;
数字2=数字/1000%10;
digit3=数字%1000/100%10;//第三个数字是必需的吗?
数字4=数字%10000%1000%100/10;
数字5=数字%10000%1000%100%10;
if(digit1==digit5&&digit2==digit4)
返回true;
其他的
返回false;
}
公共空间显示()
{
//根据IsPalinDrome的结果显示输出文本
//显示结果后,从头开始,要求用户再次输入数据
}
}
boolean displayCheck=false编码>并设置相同的值
我这边有一个问题:如果你的代码没有编译,你觉得逻辑是正确的是什么?你的主要方法在哪里?不要随意地把代码扔进你的程序。把你们要做的事情写出来,每一步都写在纸上,然后一行一行地添加代码,然后经常编译,直到所有错误都被修复,再添加新代码。否则,你最终会得到一堆无用的错误,就像你在这里向我们展示的那样。所以,重新开始。读你的书(最能帮助你的东西)。我使用的例子来自堆栈溢出,没有使用main方法。我的课本没有回文。我可以看到错误弹出,因为我输入代码。我看到的唯一错误是错误的变量,以及缺少没有main方法的编译。主要方法是否可以执行其他方法?您的问题源于盲目地借用代码,而尚未理解核心概念,即您声明
“我一点也不知道我在做什么。”
。所以不要借用代码,也不要要求我们帮助修复借用的代码,因为这样做是疯狂的。相反,阅读你的书,如果有必要,重新阅读,然后从你自己的代码开始。学习基本概念并重新开始。逻辑指的是数学和检查用户输入。类别范围指的是我的界面吗?我已经试过了,没有骰子。我在这里尝试,真的遇到了麻烦。谢谢,这解决了我的变量问题。就像我之前说的,只寻找正确方向的指针。我不是要求任何人制造代码。