私は初心者の質問があるので、私はjavaに新しいです。 私は電球プログラムを書く作業をしています。電球プログラムを入れ替える必要があります。 RGBColorクラス(コード内の特定の参照が表示されます)は、LightBulbクラスの基になっている別のクラスです。ここで私は電球のクラスで、これまで行ってきたコードです:私は電球オブジェクトを構築し、switchLight()メソッドを実装しようとしているLightBulbの仕事 - 初心者
public class LightBulb
{
private RGBColor _color;
private boolean _switchedOn;
private final int MIN_VAL = 0;
private final int MAX_VAL = 255;
public LightBulb(int red, int green, int blue)
{
_color = new RGBColor(red, green, blue);
_switchedOn = false;
if((red < MIN_VAL) || (red > MAX_VAL) || (green < MIN_VAL) || (green > MAX_VAL) || (blue < MIN_VAL) || (blue > MAX_VAL))
{
red = MIN_VAL;
green = MIN_VAL;
blue = MIN_VAL;
}
}
public LightBulb(RGBColor color)
{
_color = new RGBColor(color);
_switchedOn = false;
}
public LightBulb(LightBulb other)
{
_color = new RGBColor(other._color);
_switchedOn = false;
}
public String toString()
{
String onOrOff;
if(isSwitchedOn() == true)
onOrOff = "On";
else
onOrOff = "Off";
return ("(" + _color.getRed() + "," + _color.getGreen() + "," + _color.getBlue() + ")" + ", " + onOrOff);
}
public RGBColor getColor()
{
return new RGBColor(_color);
}
public void setColor(RGBColor color)
{
_color = new RGBColor(color);
}
public boolean isSwitchedOn()
{
if((_color.getRed() == 0) && (_color.getGreen() == 0) && (_color.getBlue() == 0))
_switchedOn = false;
else
_switchedOn = true;
return _switchedOn;
}
public void switchLight()
{
//_switchedOn = !_switchedOn; // option 1: Doesn't switch it to the reversed value
if(isSwitchedOn() == true)
_switchedOn = false;
else
_switchedOn = true; // option 2: Doesn't switch it to the reversed value either
}
が、私はないんだけど逆の価値を受け取った...私はそれをどうやって受け取ることができるかについてのヒントがあるかどうかを知ってうれしいです。
ありがとうございます!
ありがとうございました。私はあなたが示唆したことを試しましたが、事は、私が(255,255,255)を値として置いていても、私がこのようにしているとき、toStringメソッドによると、電球は「オフ」です正しい。私は "on"を受け取るべきです... – user6351755
あなたのコンストラクタでは、_switchedOnの初期状態をfalseに設定します。ゼロ以外の色がコンストラクタに渡された場合、最初にライトを点灯させたい場合は、そのチェックをコンストラクタに追加して_switchedOnをtrueに変更する必要があります。現在、すべてのコンストラクタが電球を最初にオフに設定しています。これは、isSwitchedOn()またはswitchLight()メソッドのコードに関係なく変更されません。 –