2017-09-02 34 views
-2

我有兩個類 Hello.java我如何通過類之間的布爾值,並獲得所需的輸出

class Hello 
{ 
    private boolean check ; 

public Hello() 
{ 

} 

void display() 
{ 
     if(check == true) 
     {   
     System.out.println("Available"); 
     } 
     else if(check == false) 
     { 
      System.out.println("Not Availabe"); 
     } 
} 
} 

而且Main.java

public class Main { 

    public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 
boolean check; 
       System.out.println("Is Available(yes/no):"); 
       String av = sc.nextLine(); 
       if(av.equals("yes")) 
       { 
        check = true; 
       } 
       else if(av.equals("no")) 
       { 
        check = false; 
       } 

       Hello hello=new Hello(); 
       hello.display(); 
      } 
    } 

我想,如果我輸入「是「,然後獲得」可用「作爲輸出,類似於輸入」否「時獲得」不可用「。但該值必須通過Hello類才能獲得輸出。 但我每次都收到「不可用」的輸出。如何解決它?在你好

class Hello 
{ 
    //check in Hello class 
    private boolean check; //#1 
    //constructor will take check as input 
    public Hello(boolean check) 
    { 
     this.check = check 
    } 

    void display() 
    { 
      if(check) 
      {   
      System.out.println("Available"); 
      } 
      else 
      { 
       System.out.println("Not Availabe"); 
      } 
    } 
} 

的構造

+0

刪除C++和c標記 –

回答

0

通行證校驗值現在創建一個Hello類的對象與布爾值。

public class Main { 

    public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 
     //this check is different from Hello class check 
     //check in Main class 
     boolean check; //#2 
     System.out.println("Is Available(yes/no):"); 
     String av = sc.nextLine(); 
     if(av.equals("yes")) 
     { 
      check = true; 
     } 
     else if(av.equals("no")) 
     { 
      check = false; 
     } 

     Hello hello=new Hello(check); 
     hello.display(); 
    } 
} 

您有兩個檢查變量(請參閱代碼#1和#2中的註釋)。兩者都無關,都是不同的。 #1是類Hello的實例變量,#2是main方法的局部變量。

+1

您應該避免將布爾值與true或false進行比較;只是使用「如果(檢查)」或如果(!檢查)' – FredK

+0

我只是從問題複製粘貼。我的重點是在Hello類對象中傳遞布爾值。 –

相關問題