簡體   English   中英

爪哇。 方法 isOpen() 未定義為 Lock 類型。 還需要一些幫助來修復一些代碼/調試

[英]Java. The method isOpen() is undefined for the type Lock. Also need some help fixing some code/debugging

import java.io.*;
public class GentCPT3
{
  public static void main (String[] args) throws IOException
  {
    BufferedReader objReader = new BufferedReader(new InputStreamReader (System.in)); 

      System.out.println("Enter key");
      int key1 = Integer.parseInt(objReader.readLine()); // set to 111  

      System.out.println("Enter key2");
      int key2 = Integer.parseInt(objReader.readLine()); // set to 222

      Lock lock1 = new Lock (key1);

      Lock lock2 = new Lock (key2);

      System.out.println(lock1.isOpen()); // prints false

      lock1.close();
      lock2.close();
      lock1.open(111); // opens lock1
      lock2.open(222); // opens lock2111
      lock1.open(123); // fails to open
      lock1.open(456); // fails to open
      lock1.open(789); // fails - prints “Alarm”
    }
  }
class Lock //Initializing class
{
  //Initializing variables
  boolean isOpen;
  int key; 
  int numAttempts = 0;

  Lock(int key) 
  {
    isOpen = false; 
    this.key = key;
  } 

  public void close()//for incorrect combo 
  {
    isOpen = false;
  } 
  public void open(int key)//for correct combo
  { 
    if(this.key == key) 
    {
      isOpen = true;
    } 
    else if(this.key != key && !isOpen) 
    {
      numAttempts++;
    } 
    if(numAttempts == 3) 
    {
      System.out.println("ALARM");//prints alarm when the combo is incorrect **enter code here**3 times
    } 
  } 
}

我需要幫助修復標題中提到的錯誤。 還有一些我需要幫助的其他調試事項。 如果您認為可以修復它,請隨時編輯代碼。 我需要幫助將鎖上每個組合的嘗試次數設置為 3,因為現在它設置為 2,我不知道為什么

問題是一旦成功打開鎖,您就不會關閉它們。 將您的電話更改為:-

lock1.close();
lock2.close();
lock1.open(111); // opens lock1
lock2.open(222); // opens lock2111
lock1.close(); // NEW ADDITION
lock2.close(); // NEW ADDITION
lock1.open(123); // fails to open
lock1.open(456); // fails to open
lock1.open(789); // fails - prints “Alarm”

為了進一步改進代碼,當this.key == key時在open()重置numAttempts = 0 並刪除this.key != key因為由於先前的if條件,它始終為true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM