如何在类之间传递布尔值并获得所需的输出

时间:2017-09-02 18:13:18

标签: java boolean

我有两节课 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才能获得输出。 但我每次都输出“不可用”作为输出。怎么解决呢?

1 个答案:

答案 0 :(得分:0)

在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");
          }
    }
}

现在使用布尔值创建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方法的局部变量。