2016-03-27 63 views
0

整個程序應該輸入組合鎖並接受組合。這是我遇到的問題。標識符預期和非法啓動類型的幾個錯誤。困惑

import java.util.*; // needed for Scanner 

public class CombinationLock extends Lock 
{ 
    // Instance Variables 
    private String combination; 

    Scanner keyboard = new Scanner(System.in); 

    System.out.println("Enter Combination --> "); 
    String combo = keyboard.nextLine(); 

    if(combination = combo) 
    { 
    super.open(); 
    } 

public String toString() 
    { 
    String str = super.toString() + "\n" + 
       "Combination = " + combination + "\n"; 
    return str; 
    } 

public void setCombination() 
{ 

} 

public boolean getCombination() 
{ 

} 

public CombinationLock() 
{ 
    super(); // call the default constructor of the Lock class 
    combination = ""; 
} 

public CombinationLock(String combo) 
{ 
    super(); 
    combination = combo; 
} 


} 

這是我得到

--------------------Configuration: <Default>-------------------- 
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:10: error: <identifier> expected 
    System.out.println("Enter Combination "); 
        ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:10: error: illegal start of type 
    System.out.println("Enter Combination "); 
        ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:13: error: illegal start of type 
    if(combination = combo) 
^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:13: error: <identifier> expected 
    if(combination = combo) 
       ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:13: error: ';' expected 
    if(combination = combo) 
       ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:13: error: illegal start of type 
    if(combination = combo) 
         ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:13: error: <identifier> expected 
    if(combination = combo) 
         ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:14: error: ';' expected 
    { 
    ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:15: error: illegal start of type 
    super.open(); 
     ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:18: error: class, interface, or enum expected 
public String toString() 
    ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:22: error: class, interface, or enum expected 
    return str; 
    ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:23: error: class, interface, or enum expected 
    } 
^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:25: error: class, interface, or enum expected 
public void setCombination() 
    ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:30: error: class, interface, or enum expected 
public boolean getCombination() 
    ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:35: error: class, interface, or enum expected 
public CombinationLock() 
    ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:38: error: class, interface, or enum expected 
    combination = ""; 
^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:39: error: class, interface, or enum expected 
} 
^ 
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:41: error: class, interface, or enum expected 
public CombinationLock(String combo) 
    ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:44: error: class, interface, or enum expected 
    combination = combo; 
    ^
C:\Users\waki_\OneDrive\Documents\CombinationLock.java:45: error: class, interface, or enum expected 
} 
^ 
20 errors 

Process completed. 

的錯誤,我不知道是什麼導致的問題。我試圖找到其他答案,但沒有一個與我的問題有關。

+1

您的代碼**不是在方法或初始化塊中**。 –

回答

0

Java語句必須出現在一段代碼中。因此,在這種情況下,您在此類中的代碼在方法外部需要被{}包圍。

但它看起來像你正試圖讀取輸入等。理想情況下,你應該做的是在這個類中創建一個main方法,你創建一個CombinationLock的實例並在主方法中讀取輸入。

0

您正在函數之外編寫語句。確保所有語句都在函數內部,並且所有實例變量都有範圍標識符。

Sepcifically,確保下面的語句是一個函數內部:

Scanner keyboard = new Scanner(System.in); 

System.out.println("Enter Combination --> "); 
String combo = keyboard.nextLine(); 

if(combination = combo) 
{ 
    super.open(); 
} 
0

您需要更正幾件事情:

  1. 的代碼來獲取用戶的輸入應該是在方法內部。 Java不允許在方法或塊之外編寫這樣的邏輯。
  2. 如果條件沒有正確實施。如果條件返回boolean,Java期望內部表達式。然而,在if內部使用的=運算符導致String。對於字符串比較,我們應該在內部使用string1.equals(string2)