对于我的班级,我遇到了一个问题,我必须创建一个名为Fan的类.然后我被告知要分配不同的字段,其中一个是一个调用的布尔值,如果真的意味着风扇打开了.最后被告知这一点
一个名为的方法toString(),返回风扇的字符串描述.如果风扇打开,则该方法返回一个组合字符串中的风扇速度,颜色和半径.如果风扇未打开,则该方法将返回扇形颜色和半径以及一个组合字符串中的"扇形关闭"字符串.编写一个创建两个Fan对象的Demo类.为第一个风扇分配以下值:speed:1000rpm,radius:12,color:blue和fan-state:on.将以下值分配给第二个风扇:速度:2000rpm,半径:5,颜色:蓝色和扇形状态:关闭.通过调用toString方法显示对象.
所以我继续上课,
包p2 ;
public class Demo {
public static void main(String[] args) {
Fan f1 = new Fan(1000, true, 12, "blue");
Fan f2 = new Fan(2000, false, 5, "blue");
// 1000rpm, radius: 12, color: blue, and fan-state: on
//speed: 2000rpm, radius: 5, color: blue, and fan-state: off
System.out.println(f1);
System.out.println("----------------------------");
System.out.println(f2);
}
}
Run Code Online (Sandbox Code Playgroud)
包p2 ;
public class Fan {
private int speed;
private boolean on;
private double radius;
private String color;
public Fan()
{
speed = 0;
on = false;
radius = 0;
color = "none";
}
public Fan(int speed, boolean on, double radius, String color) {
this.speed = speed;
this.on = on;
this.radius = radius;
this.color = color;
}
public int getSpeed()
{
return speed;
}
public void setSpeed(int speed)
{
this.speed = speed;
}
public boolean isOn()
{
return on;
}
public void setOn(boolean on)
{
this.on = on;
}
public double getRadius()
{
return radius;
}
public void setRadius(double radius)
{
this.radius = radius;
}
public String getColor()
{
return color;
}
public void setColor(String color)
{
this.color = color;
}
public String toString()
{
if(on = true)
{
return "Fan Speed: " + getSpeed() + "rpm" + "\nFan Color: " + getColor() + "\nFan Radius: " + getRadius();
}
else
return "*Fan is off*" + "\nFan Color: " + getColor() + "\nFan Radius: " + getRadius();
}
}
Run Code Online (Sandbox Code Playgroud)
在运行之后,我发现每次运行它时,无论我的一个Fan对象是否为false,它仍将返回true语句.有帮助吗?谢谢!
这是因为你说if (on = true),当你的意思if (on == true).赋给第一on是true(意味着每次打印的风扇时,它会改变on为true).同时,第二次检查是否on等于true.既然on是布尔值,你总是可以说if(on).