2011-08-24 81 views
1

嘿傢伙對不起,這是一個相當長的問題,但我無法使用pm.printPASSInfo()將printPASSInfo()調用到另一個類。 pm是我命名的類的名稱,我試圖調用的方法是。我可以調用方法pm.printSSNInfo就好,我不明白髮生了什麼問題。我很抱歉,這可能是令人困惑和很長時間,但請嘗試幫助。多謝你們!我的繼承人代碼:Java代碼不讓我調用從一個類到另一個類的方法

和這裏就是我想稱之爲:

case 2:  System.out.println("Enter a password witha atleast 8 characters and atleast 2 numbers:\t"); 
         pw = input.nextLine(); 
         pm.readAndVerifyPASS(pw); 
         pm.printPASSInfo(); 
         break; 

和comile錯誤:

MySkeletonProgram1_FA11.java:53: cannot find symbol 
symbol : method printPASSInfo() 
location: class Prog1Methods_FA11 
          pm.printPASSInfo(); 
                 ^
1 error 

當我宣佈下午對象:

public class MySkeletonProgram1_FA11{ 
    public static void main(String[] args)throws Exception { 

// Declarations 

Scanner scan = new Scanner(System.in); 
Scanner input = new Scanner (System.in); 
Prog1Methods_FA11 pm = new Prog1Methods_FA11(); 
+5

向我們展示您嘗試調用該方法的語句/上下文。向我們展示編譯器錯誤。 –

+3

未來,您可以省略不影響手頭問題的多餘代碼(如多餘的打印,空方法,未使用的變量等)。有時候,你甚至可以通過這種方式來隔離和解決你自己的問題。 – Steven

+0

我一直盯着這一個小時,還沒有找到任何東西,這就是爲什麼我認爲有一些隨機的東西,我被阻止... – Josh

回答

1

我不確定我的理解能力如何。 我只是試圖重現錯誤。
所以,我做了什麼。
1.文件MySkeletonProgram1_FA11.java

public class MySkeletonProgram1_FA11 { 

public static void main(String[] args) throws Exception { 
    Prog1Methods_FA11 pm = new Prog1Methods_FA11(); 
    pm.printPASSInfo(); 
} 
} 

2.文件Prog1Methods_FA11.java

import java.util.Scanner; 

public class Prog1Methods_FA11 { 

String ssn, pw, phoneNumber, line; 
Scanner input = new Scanner(System.in); 
boolean validPW_Length = true, 
     validPW_Symbols = true, 
     validPW_enough_Digits = true; 
boolean validSSN_Digits = true, 
     validSSN_Format = true, 
     validSSN_Length = true; 
boolean validPhone_Symbols = true, 
     validPhone_Format = true, 
     validPhone_Length = true; 

public Prog1Methods_FA11() { 
} 

// you may insert a method here to display password status 
public void printPASSInfo() { 
    System.out.println("\t Password Information"); 
    System.out.println("The Password:\t" + pw); 
    System.out.println("Password Lrngth:\t" + validPW_Length); 
    System.out.println("Password has minimum number of digits:\t" + validPW_enough_Digits); 
    System.out.println("Password has correct symbols:\t" + validPW_Symbols); 
} 
} 

3.我已經把兩個文件在同一目錄下。
4.編譯命令

javac MySkeletonProgram1_FA11.java 

編譯成功完成沒有錯誤和警告。

它適合你嗎?如果答案是「否」,那麼我認爲這是JDK的問題。否則,您可能需要提供更多詳細信息。你有什麼不同?

+0

是的,整個程序都是這樣做的。我將不得不擦拭它,並開始完全...... :(謝謝大家的耐心和幫助! – Josh

0

隨着你粘貼的類,這個編譯一個nd運行正常:

public static void main(String[] args) { 
    Prog1Methods_FA11 pm = new Prog1Methods_FA11(); 
    String pw = "foo"; 
    pm.readAndVerifyPASS(pw); 
    pm.printPASSInfo(); 
} 

嘗試一下,併發布任何你得到的錯誤。

+0

保持收到此消息:MySkeletonProgram1_FA11.java:53:找不到符號 符號:方法printPASSInfo() 位置:類Prog1Methods_FA11 \t \t \t \t \t \t \t pm.printPASSInfo(); ^ 1錯誤 – Josh

+0

如果您可以實例化它,但不調用該方法,那麼聽起來您可能需要重新編譯Prog1Methods_FA11.java –

0

你的代碼似乎很好。該錯誤消息可能是由於未編譯的代碼。嘗試重新編譯/構建並運行。

+0

。退出程序並重新編譯所有東西仍然錯誤 – Josh

+0

我建議你在IDE中創建一個小型的HelloWorld程序。如果你的HelloWorld程序運行沒有任何錯誤,你的程序應該正常運行。 – gtiwari333

相關問題