You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Java中SavingsAccount类的withdraw()需return,deposit()却无需?

问题解答

这完全取决于方法声明的返回类型,Java语法有明确的强制规则:

  • 当方法返回类型是void时,方法仅需完成内部逻辑即可,不需要返回任何值
  • 当方法返回类型是具体数据类型(比如这里的int)时,必须通过return语句返回一个对应类型的值,否则代码会直接编译失败

针对代码里的两个方法逐一拆解:

  1. deposit()方法
    它的声明是public void deposit(int amountToDeposit),返回类型为void,说明这个方法的职责只是完成存款操作(更新余额、打印提示),不需要给调用它的代码返回任何数据,因此不需要写return语句。

  2. withdraw()方法
    它的声明是public int withdraw(int amountToWithdraw),返回类型为int,Java编译器会强制要求这个方法必须返回一个int类型的值。这里返回amountToWithdraw是符合规则的——调用方后续可以用这个返回值做记账、二次校验等操作(示例代码里没用到,但方法定义本身的规则要求必须返回)。

补充:如果不给withdraw方法加return语句,IDE会直接标红报错,提示"缺少返回语句",这是Java语法的硬性要求,和方法的业务逻辑无关,只看方法声明的返回类型。

内容的提问来源于stack exchange,提问作者Cainã Gabriel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 14:35:44