0

したがって、正確な言い回しは、「指定された評価が有効である場合に true を返すプライベート メソッド isValid(aRating) を記述します。これは 1 から 10 の間です。」

private void isValid(aRating)
{

}

指定された評価が有効である場合に真の値を返すために上記のメソッドで実行されること。有効性は 1 ~ 10 の数値を意味します。

これは私が試みたものであり、インストラクターはそれを「適切な方法」で望んでいます。これは私が試みたことのほんの一例です。完全に別のプログラムです。(紛らわしい場合は無視してください)。

private void isValid(int hour,  int minute) 
{
    if (hour >= 0 && hour <=23) 
    {
        System.out.println("Hour is valid");
        hourIsValid = true;
    } 

    else 
    {
        System.out.println("Hour is not valid");
        hourIsValid = false;
        System.exit(0);
    }
}

これは正しいでしょうか

    private boolean isValid(int aRating)
{                     
     if (aRating >= 1 && aRating <= 10)
         return true;
     else
         return false;
}
4

3 に答える 3

2

プライベート メソッドの呼び出し

パブリック メソッドからプライベート メソッドを呼び出すことは、他のメソッドを呼び出すこととまったく同じです。

public void doStuff() {
    System.out.println("Stuff done.");
}

private void doOtherStuff() {
    System.out.println("Other stuff done.");
}

public void showHowItWorks() {
    doStuff();
    doOtherStuff();

    // or if you prefer this style:
    this.doStuff();
    this.doOtherStuff();
}

重要な違いは、プライベート メソッドは、それらが定義されたクラス内からのみ呼び出すことができるということです。

class PublicExample {
    public static void doStuff() {
        System.out.println("Stuff done.");
    }
}

class PrivateExample {
    private static void doStuff() {
        System.out.println("Stuff done.");
    }
}

class Example {
    public static void Main(String[] args) {
        PublicExample.doStuff(); // Works
        PrivateExample.doStuff(); // Doesn't work (because it's private and defined in a different class)
    }
}

戻り値

private void isValid(int hour,  int minute) {
    if (hour >= 0 && hour <=23) {
        System.out.println("Hour is valid");
        hourIsValid = true;
    } else {
        System.out.println("Hour is not valid");
        hourIsValid = false;
        System.exit(0);
    }
}

このアプローチの問題は、不適切な時間または分を入力すると、プログラムがすぐに停止することです。適切な入力が得られるまでループしたい場合はどうすればよいですか?

主な問題は、メソッドから値を返す方法がわからないことだと思います。常に を返す関数の例を次に示しますtrue

public static boolean trueExample() {
    return true;
}

public static void main(String[] args) {
    boolean returnValue = trueExample();
    System.out.println("trueExample() returned " + returnValue);
}

さらに複雑にすることもできます。

/**
 * @return the input value minus one.
 */
public static int oneLess(int num) {
    return num - 1;
}

public static void main(String[] args) {
    int num = 10;

    // Print 10
    System.out.println(num);

    // Print 9
    num = oneLess(num);
    System.out.println(num);

    // Print 8
    num = oneLess(num);
    System.out.println(num);
}

が 10 ~ 20 の範囲内にあるtrue場合に返されるものを次に示します。numfalse

public boolean isValid(int num) {
    return num >= 10 && num <= 20;
}

このバージョンはまったく同じことを行いますが、より明示的であるため、読みやすいかもしれません。

public boolean isValid(int num) {
    /* Numbers less than 10 are invalid */
    if(num < 10) {
        return false;
    }
    /* Numbers greater than 20 are invalid */
    else if (num > 20) {
        return false;
    }
    /* By process of elimination, everything else is valid */
    else {
        return true;
    }
}

問題を解決するのに十分でない場合はお知らせください。

于 2011-11-01T02:35:36.937 に答える
0

プライベート メソッドがパブリック メソッドから見える限り、通常のメソッドを呼び出すのと同じように。

于 2011-11-01T02:34:28.923 に答える