在类之间打印布尔值布尔值

时间:2013-03-15 00:22:12

标签: java class object boolean boolean-operations

我对Java比较陌生。我得到了一个赋值,我必须输出一个显示其属性的类的对象,并打开它。对象是一个'粉丝',我可以打印我创建的FAB类的所有属性,除非打开它。 这是我的一些代码

public class Fan {
private boolean on = false;

public Fan ( int newSpeed, boolean newOn, double newRadius, String newColor ) {

            setSpeed(newSpeed);    
            setRadius(newRadius);
            setColor(newColor);
            }

            public boolean isOn () { 
            return true;

            }
           public void setOn ( boolean newOn ) {
                    if (on) {
                        on=newOn;


                    } 
                    }
         public String toString ( ) {                
            {
               if (on)
               {
                  return "Fan is Turned on";
               }
               else
               {
                  return "Fan is Turned off";
               }
                  }
                    }

这是粉丝类的对象

public class TestApplication {
public static void main (String[] args) {

    Fan testfan1 = new Fan(5, false, 10, "blue");

    System.out.println(testfan1.getSpeed() + "   " + testfan1.getColor() + " " 
            + testfan1.getRadius() + " " + testfan1.isOn());


 }
}

尝试了很多方法,但我得到输出'true'而不是粉丝开启

2 个答案:

答案 0 :(得分:5)

我看到了一些错误:

您正在使用=运算符在if语句中进行比较。 =运算符是Java中的赋值运算符。使用==进行比较。

if (on == true) 

如果您要比较的是布尔值(这里就是这种情况),只需提供布尔值:

if (on)

另外,在isOn方法中,您总是返回true,我认为您打算返回on

答案 1 :(得分:4)

if (on = true) {

我认为你的意思是

if (on == true) {

简化为

if (on) {

Captcha:语言where =用作赋值而不是:=,尽管看起来像==,并且它不是在if体中使用=的警告

编辑:另外:

        public boolean isOn () { 
        return true;

        }

为什么不return on

此外:

如果在设置变量时打印'风扇已打开''风扇已关闭'等,则当您1)通过isOn获取变量时,不会发生这种情况2)连接字符串以便发送到println。

修改

public string ToString()
{
   if (on)
   {
      return "Fan is Turned on";
   }
   else
   {
      return "Fan is Turned off";
   }
}

System.out.println(testfan1);