2017-09-02 37 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类对象中传递布尔值。 –

相关问题