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