0

私は次のコードを書き、Getステートメントをテストすることができましたが、flygplan2.andraHojdを使用してintを変更したことがわかるように、以下のコードでvoidステートメントをテストするにはどうすればよいですか?結果を表示するにはどうすればよいですか?その変更について、skrivaUTinfoクラスで表示できますか)

以下のコードを参照してください

//Klass
public class FlygPlan {
    int hojd;
    int flygriktning;
    int hastighet;
    String modellbeteckning;
    //Konstruktor
    public FlygPlan(int hojd, int flygriktning, int hastighet, String modellbeteckning) {
        this.hojd = hojd;
        this.flygriktning = flygriktning;
        this.hastighet = hastighet;
        this.modellbeteckning = modellbeteckning;


    }
    //Main-metoden
    public static void main(String[] args) {
        FlygPlan flygplan1 = new FlygPlan (1000, 1, 60 , "Hejsan");
        FlygPlan flygplan2 = new FlygPlan (10, 4, 70, "Sohail");
        flygplan1.skrivaUt();


        flygplan2.andraHojd(60,70);



    }

    public void andraHojd(int hojd, int nyHojd)
    {
        hojd = nyHojd;
    }
    public static int visaHojd(int hojd)
    {
        return hojd;
    }
    public void andraRiktning(int flygriktning, int nyFlygriktning)
    {
        flygriktning = nyFlygriktning;
    }
    public static int visaRiktning(int flygriktning)
    {
        return flygriktning;
    }
    public void andraHastighet(int hastighet, int nyHastighet)
    {
        hastighet = nyHastighet;
    }
    public static int visaHastighet(int hastighet)
    {
        return hastighet;
    }
    public void andraModellBeteckning(int modellbeteckning, int nyModellbeteckning)
    {
        modellbeteckning = nyModellbeteckning;
    }
    public static String visaModellBeteckning(String modellbeteckning)
    {
        return modellbeteckning;

    }

    public void skrivaUt()
    {
    System.out.println(" flygets modellbeteckning är " +modellbeteckning);
    System.out.println(" flygets flygriktning är " +flygriktning);
    System.out.println(" flygets hastighet är " +hastighet);
    System.out.println(" flyget flyger på  höjd(m) " +hojd);



    }




}
4

3 に答える 3

0
public void andraHojd(int hojd, int nyHojd)
{
    hojd = nyHojd;
}

このセッター メソッドやそれに似たメソッドは、おそらく意図したものではありません。整数変数をパラメータとして渡し、(hojd)別のメソッド パラメータに基づいてその値を設定しています(nyHojd)。メソッドが存在する場合、この状態変更は失われます。あなたが望むのは次のとおりだと思います:

public void andraHojd(int hojd)
{
    this.hojd = hojd;
}

あなたの質問に関する限り:

flygplan2.andraHojd を使用して int を変更したことがわかるように、以下のコードの void ステートメントをテストするにはどうすればよいですか?しかし、その変更の結果を表示するにはどうすればよいですか?それを skrivaUTinfo クラスで表示するにはどうすればよいですか?

クラスにメソッドを記述してtoString()、そのメンバーフィールドを出力し、単にインスタンスでそれを呼び出すことができますFlygPlan

@Override public String toString() { return "hojd = " + this.hojd" + " flygriktning = " this.flygriktning; }

于 2012-08-07T16:47:46.173 に答える
0

voidメソッドは何も返さないことを意味します。

テストする 1 つの方法は、配置され、System.out.println()それが呼び出されるかどうかを確認することです。また、セッターが呼び出された後、ゲッターを使用して値を出力できます。

あなたのコードにはいくつかの問題があります。

A.staticインスタンス メンバーを返す getter メソッド。

B. getter は通常、パラメータを取りません。私はあなたがそれをしたいとは思わない。

public static int visaHastighet(int hastighet)
{
    return hastighet;
}

次のようになります。

public int visaHastighet()
{
    return hastighet;
}

C. セッターはローカル変数のみを変更するため、適切に配置されていません。

public void andraHojd(int hojd, int nyHojd)
{
    hojd = nyHojd;
} 

次のようになります。

public void andraHojd(int hojd)
{
    hojd = nyHojd;
} 
于 2012-08-07T16:47:06.727 に答える