2013-09-25 64 views
0

好的,我沒有最簡單的線索我在做什麼。我被困在一項任務上,很大程度上是因爲我的教科書和課程資料極其缺乏示例或相關圖表。Java迴文,方法和抽象類?

我已經瀏覽了堆棧溢出,谷歌和任何我可以讓我的手將這個怪物放在一起,所以請裸露在我身上,我這樣構造程序的原因是因爲我需要使用4方法:執行所有其他方法的主要方法,檢索輸入方法,檢查方法和顯示方法。我喜歡聽聽最佳做法,但我不得不像這樣編碼。

我的主要問題是我的抽象類。我是一個在Java的noob,我寫在一個方法中的任何變量將不會在另一箇中解析,我不知道如何使變量全局。

其次,代碼不能編譯,我找到的例子沒有經典的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 

} 

} 
+0

你的主要方法在哪裏? – gjman2

+1

不要只是把代碼放入你的程序中,先寫下你想要做的事情,首先在紙上進行每一步,然後一次添加一行代碼,然後經常編譯,並且在修正所有錯誤之前不要添加新代碼。否則,你最終會得到一堆無用的錯誤,就像你在這裏展示的那樣。所以,重新開始。閱讀你的書(最重要的是幫助你)。不要猜測。 –

+0

我使用的例子,來自堆棧溢出,沒有使用主要方法。我的教科書沒有經過Palindromes。當我輸入代碼時,我可以看到彈出的錯誤。我看到的唯一的錯誤是不好的變量,缺乏沒有主要方法的編譯。主要方法可以執行其他方法嗎? –

回答

2
  1. 移動變量之外的方法和類範圍
  2. 寫作的主要方法是你在Java學習的第一件事就是把直接。看着你的教程再次
  3. 您可以使用一個布爾變量boolean displayCheck = false;和設置從我身邊一樣

而且一個問題:如果你的代碼不編譯什麼讓你覺得這個邏輯是正確的?

+0

邏輯我的意思是數學和檢查用戶輸入。 –

+0

按類範圍你是指我的界面?我試過了,沒有骰子。我在這裏嘗試,真的碰到了一堵磚牆。 –

+0

不..抽象類 –