无返回值的方法(或称为过程、void方法)
-
执行操作:无返回值的方法主要用于执行一些操作,这些操作可能不需要向调用者返回任何结果。例如,打印日志、更新数据库记录、发送网络请求等。这些操作本身就是目的,它们的执行结果(如副作用)通常不需要直接返回给调用者。
-
简化调用:在某些情况下,如果方法的主要目的是执行某个操作而不是返回数据,那么使用无返回值的方法可以使调用代码更加简洁明了。调用者不需要处理返回值,只需要知道方法已经执行了所需的操作。
-
符合面向对象原则:在面向对象编程中,对象的方法往往代表对象的行为。有些行为(如“移动”、“保存”等)本身并不直接产生可以被返回的数据,而是改变了对象的状态或环境。因此,使用无返回值的方法来表示这些行为是符合面向对象原则的。
有返回值的方法
-
提供数据:有返回值的方法主要用于向调用者提供数据。这些数据可能是方法执行的结果,也可能是方法内部处理的数据。例如,计算两个数的和、查找数组中的元素、获取对象的属性等。通过返回值,调用者可以获取到需要的数据,以便进行后续的处理或决策。
-
链式调用:在某些编程语言或框架中,支持链式调用(即连续调用多个方法,每个方法的返回值都是下一个方法的调用者)。这种调用方式要求方法必须有返回值,并且返回值通常是调用该方法的对象本身或另一个支持链式调用的对象。链式调用可以使代码更加简洁和流畅。
-
错误处理:虽然这不是有返回值方法的直接原因,但有返回值的方法可以通过返回特殊值(如null、特定的错误代码或异常对象)来表示错误情况。这样,调用者就可以根据返回值来判断操作是否成功,并据此进行错误处理。
总结
无返回值的方法和有返回值的方法各有其存在的必要性。无返回值的方法主要用于执行操作,简化调用,并符合面向对象原则;而有返回值的方法则用于提供数据,支持链式调用,以及进行错误处理。在编程中,根据实际需求选择合适的方法类型是非常重要的。
以下是一个简单的例子,展示了无返回值的方法和有返回值的方法在实际编程中的应用。
假设我们正在编写一个简单的计算器类,这个类包含两个方法:一个用于计算两个数的和(有返回值),另一个用于打印欢迎信息(无返回值)。
Java 示例
package com.itheima;
public class Sumber {
public static void main(String[] args) {
}
// 无返回值的
public void post() {
System.out.println("无返回值的调用");
}
// 有返回值的
public int add(int a, int b) {
return a + b;
}
// 有参数的
public void delete(int a) {
int c = a + 10;
}
//实例变量(需要new)
public int a;
//实例成员(加了static,不需要new)
public static int b;
}
//又返回的带参方法,会自动帮助生成括号
class Tester {
public static void main(String[] args) {
//new的
Sumber sumber = new Sumber();
sumber.a = 10;
//无返回调用(需要new)
sumber.post();
//有返回调用(两个参数)
int add = sumber.add(10, 20);//需要传参数
System.out.println("有返回两个参数的调用 = " + add);
//有返回调用(一个参数)
sumber.delete(11);
System.out.println("有返回一个参数的调用 = " + add);
}
}
在这个例子中,add
方法是一个有返回值的方法,它接收两个整数作为参数,并返回它们的和。这个方法通过 return
语句返回一个整数值。
另一方面,printWelcomeMessage
方法是一个无返回值的方法(在 Java 中,无返回值的方法使用 void
关键字声明)。这个方法通过 System.out.println
打印一条欢迎信息,并不返回任何值。
在 main
方法中,我们首先创建了一个 SimpleCalculator
类的实例 calculator
。然后,我们调用了 printWelcomeMessage
方法来打印欢迎信息,这个方法没有返回值,所以我们不需要(也不能)接收任何返回值。接着,我们调用了 add
方法来计算 5 和 3 的和,这个方法返回了一个整数值,我们将这个值存储在变量 sum
中,并随后打印出来。
这个例子很好地展示了无返回值方法和有返回值方法在实际编程中的应用和区别