プライベート メソッドの呼び出し
パブリック メソッドからプライベート メソッドを呼び出すことは、他のメソッドを呼び出すこととまったく同じです。
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
場合に返されるものを次に示します。num
false
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;
}
}
問題を解決するのに十分でない場合はお知らせください。