调用私有方法
从公共方法调用私有方法与调用任何其他方法完全相同:
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);
}
true
如果num
在 10-20 范围内,则返回一个,否则返回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;
}
}
如果这还不足以帮助您解决问题,请告诉我。