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


 }
}

多くの方法を試しましたが、ファンがオンになっていない出力「true」が表示されます

4

2 に答える 2

5

私が見るいくつかの間違い:

ステートメント=で比較するために演算子を使用しています。演算子は、Javaの代入演算子ですif。比較するために=使用します。==

if (on == true) 

また、比較しているのがブール値(ここではそうです)の場合は、ブール値のみを指定してください。

if (on)

また、あなたのisOnメソッドでは、あなたは常に戻っていtrueます、私はあなたが返すつもりだったと思います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 に答える