【问题标题】:Java Palindrome, methods, and abstract classes?Java回文、方法和抽象类?
【发布时间】:2013-09-25 03:11:00
【问题描述】:

我被困在一个作业上,主要是因为我的教科书和课堂材料中极度缺乏示例甚至相关图表。

我按照我的方式构建程序的原因是因为我需要使用 4 个方法:一个执行所有其他方法的主方法、一个检索输入法、一个检查方法和一个显示方法。我喜欢听到有关最佳实践的信息,但我不得不这样编写代码。

我的主要问题是我拥有的抽象类。我在一种方法中编写的任何变量都无法在另一种方法中解析,我不知道如何使变量成为全局变量。

其次,代码无法编译,我发现的示例没有经典的 main,我真的不知道如何使 main 实现方法,或者使编译器对抽象感到满意。

也不知道如何获取我的布尔结果并使用它在显示方法中显示结果。是的,它很愚蠢,我宁愿在 check 方法中这样做。

我所知道的一切是我的“逻辑”到目前为止有效。我认为。任何帮助我指出正确方向的帮助将不胜感激。如果你是一种没有抽象类的方法,我很乐意听到它,我认为抽象是不必要的。

到目前为止,这是我的怪物:

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

}

}

【问题讨论】:

  • 你的主要方法在哪里?
  • 不要随便把代码扔进你的程序。把你想做的事情写下来,每一步先写在纸上,然后一行一行地添加代码代码,然后经常编译,在所有错误都修复之前不要添加新代码。否则,您最终会遇到一堆无用的错误,就像您在这里向我们展示的那样。所以,重新开始。阅读你的书(最能帮助你的东西)。不要猜测。
  • 我使用的例子,它来自堆栈溢出,没有使用 main 方法。我的教科书没有涉及回文。当我输入代码时,我可以看到错误弹出。我看到的唯一错误是错误的变量,以及在没有 main 方法的情况下缺乏编译。主方法可以执行其他方法吗?
  • 你的问题是盲目借用代码,还没有理解核心概念,即你说"i haven't the SLIGHTEST clue what I'm doing."。因此,不要借用代码,也不要要求我们帮助修复借用的代码,因为这种方式是疯狂的。而是阅读您的书,如果必须重新阅读,然后从您自己的代码开始。了解基本概念并重新开始。

标签: java methods integer abstract-class palindrome


【解决方案1】:
  1. 将变量移到方法外,直接放到类作用域中
  2. 编写 main 方法是您在 java 中学习的第一件事。再次查看您的教程
  3. 您可以使用布尔变量boolean displayCheck = false; 并设置相同

还有一个我的问题:如果你的代码没有编译,是什么让你觉得逻辑是正确的?

【讨论】:

  • 按逻辑我的意思是数学和对用户输入的检查。
  • 按类范围是指我的界面吗?我试过了,没有骰子。我在这里尝试,真的撞到了一堵墙。
  • 谢谢,这解决了我的变量问题。就像我之前说的,只寻找正确方向的指针。我不是要求任何人制造代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-16
  • 2021-04-14
  • 1970-01-01
  • 2010-09-29
  • 2011-11-20
  • 2010-12-13
  • 1970-01-01
相关资源
最近更新 更多