1

我对 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());


 }
}

尝试了很多方法,但我得到输出“真”而不是风扇打开

4

2 回答 2

5

我看到的一些错误的地方:

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

if (on == true) 

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

if (on)

另外,在您的isOn方法中,您总是true在 return ,我认为您的意思是 return on

于 2013-03-15T00:25:36.440 回答
4

if (on = true) {

我想你的意思是

if (on == true) {

这简化为

if (on) {

验证码:尽管看起来像 ==,但将 = 用作赋值而不是 := 的语言,并且在 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);
于 2013-03-15T00:24:49.973 回答