作为我的 AP 课程的一部分,我正在学习 java,并且在从事一个项目时,我想知道以下哪个是返回值的最佳方式?
public double getQuarters(){
return quarters;
}
或者
public void getQuarters(){
System.out.println(quarters);
}
***注意:我现在第二个选项不是“技术上”返回一个值,但它仍然显示我的值,所以为什么要打扰?
你的答案是正确的。第二种方法根本不返回任何值,因此虽然您可能能够看到输出,但您的程序却不能。第二种方法对于测试甚至命令行应用程序仍然有用,但它应该被命名为类似 printQuarters 的名称。
public double getQuarters(){
return quarters;
}
使用这个记录器来封装quarters
和隐藏它以防止被其他程序访问。这意味着,您必须将其声明为private quarters
. 让我们看看第二个选项:
public void getQuarters(){
System.out.println(quarters);
}
但是,这似乎是错误的,因为getQuarters
没有返回任何东西。因此,将其重构为
public void printQuarters(){
System.out.println(quarters);
}
选项1要优越得多。
如果您需要做的就是在调用此方法时显示该值,并且您对控制台输出没问题,那么您的System.out.println
方法将完成这项工作。但是,实际返回变量的函数在语义上更加正确和有用。
例如,虽然您可能只需要打印当前项目的变量,但如果您稍后回来并决定将变量输出到文件中怎么办?如果您getQuarters
使用语句编写函数,println
则需要重写整个内容。另一方面,如果您将函数编写为返回,则无需更改任何内容。您所要做的就是为文件输出添加新代码,并在需要的地方使用该函数。
因此,返回函数更加通用,尽管在较大的代码项目中更是如此。
您将值返回到程序中的特定点,以便程序可以使用它来运行。
您在程序中的特定点打印值,以便您作为最终用户可以看到您为某些功能返回的值。
根据功能(例如,您的功能),quarters
程序中不再考虑的结果;它所做的只是将一个值打印到屏幕上,而应用程序没有 [clean|easy] 方法可以将其取回以使用它。
如果您的程序需要该值才能运行,那么它必须是return
. 如果你需要调试,那么你可以System.out.println()
在需要的地方使用。
但是,您将多次使用该return
语句。