为何Java中SavingsAccount类的withdraw()需return,deposit()却无需?
问题解答
这完全取决于方法声明的返回类型,Java语法有明确的强制规则:
- 当方法返回类型是
void时,方法仅需完成内部逻辑即可,不需要返回任何值 - 当方法返回类型是具体数据类型(比如这里的
int)时,必须通过return语句返回一个对应类型的值,否则代码会直接编译失败
针对代码里的两个方法逐一拆解:
deposit()方法
它的声明是public void deposit(int amountToDeposit),返回类型为void,说明这个方法的职责只是完成存款操作(更新余额、打印提示),不需要给调用它的代码返回任何数据,因此不需要写return语句。withdraw()方法
它的声明是public int withdraw(int amountToWithdraw),返回类型为int,Java编译器会强制要求这个方法必须返回一个int类型的值。这里返回amountToWithdraw是符合规则的——调用方后续可以用这个返回值做记账、二次校验等操作(示例代码里没用到,但方法定义本身的规则要求必须返回)。
补充:如果不给withdraw方法加return语句,IDE会直接标红报错,提示"缺少返回语句",这是Java语法的硬性要求,和方法的业务逻辑无关,只看方法声明的返回类型。
内容的提问来源于stack exchange,提问作者Cainã Gabriel
相关产品推荐
相关产品推荐

