49. Java 类和对象 - 调用方法和构造函数

49. Java 类和对象 - 调用方法和构造函数

在 Java 中,**方法(Method)构造函数(Constructor)**都可以接收参数,用来在调用时传递信息或初始值。了解参数和实参(即方法或构造函数调用时传入的值)之间的区别,以及如何正确传递这些值,对于编写和使用方法、构造函数十分重要。


1. 将信息传递给方法

1.1 方法的参数声明

一个方法声明时,参数列表位于方法名后的括号 () 中,每个参数声明由类型参数名组成,多个参数之间用逗号分隔。例如:

java 复制代码
public double computePayment(double loanAmt,
                             double rate,
                             double futureValue,
                             int numPeriods) {
    // 方法体:使用传入的参数来执行运算或逻辑
}
  • double loanAmt:表示贷款金额
  • double rate:表示利率(百分比数值)
  • double futureValue:表示将来价值
  • int numPeriods:表示还款期数

在方法体中,这些参数名就像局部变量一样使用,用于参与计算或逻辑。

1.2 调用方法时传入实参

当我们调用方法时,需要按顺序给出与方法声明匹配的实参(Arguments),数量和类型都必须与参数列表对应。例如:

java 复制代码
// 调用 computePayment 方法,传入四个实参
double monthlyPayment = computePayment(200000, 3.5, 0, 360);
System.out.println("Monthly Payment: " + monthlyPayment);
  • 200000 -> 对应参数 loanAmt
  • 3.5 -> 对应参数 rate
  • 0 -> 对应参数 futureValue
  • 360 -> 对应参数 numPeriods

在方法调用时,实参的类型和顺序必须与方法声明中的参数一一对应。参数列表(Parameters)指的是方法声明时的形式参数,而**实参(Arguments)**指的是调用方法时传入的实际数值。


2. 将信息传递给构造函数

2.1 构造函数的参数声明

构造函数的声明与方法类似,只是名称必须与类名相同,而且没有返回类型。构造函数也可以接收参数,用来初始化对象的字段。例如:

java 复制代码
public class LoanCalculator {
    private double principal;
    private double annualRate;
    private int periods;

    // 带参数的构造函数
    public LoanCalculator(double principal, double annualRate, int periods) {
        this.principal = principal;
        this.annualRate = annualRate;
        this.periods = periods;
    }

    // 其他方法...
}

2.2 调用构造函数时传入实参

通过 new 关键字调用构造函数时,也需要向其传入与参数列表匹配的实参。例如:

java 复制代码
// 调用 LoanCalculator 构造函数,传入三个实参
LoanCalculator calc = new LoanCalculator(200000, 3.5, 360);

这会创建一个 LoanCalculator 对象,并使用传入的实参初始化相应字段。


3. 参数与实参的匹配规则

  1. 数量必须相同 调用方法或构造函数时,实参的数目必须与声明中的参数数目一致。
  2. 类型必须兼容 实参的类型必须与声明中的参数类型相匹配或可兼容(例如 int 类型可以传给形参类型为 double,会进行自动类型转换)。
  3. 顺序必须保持 参数列表中的顺序决定了实参的意义和类型,也要严格遵守。

如果在调用时不满足这些要求,编译器会报错,无法编译通过。


4. 返回值(对于方法)

  • 方法可能有返回值 :方法可以声明一个非 void 的返回类型,并在方法体内使用 return 关键字返回一个结果。例如前面例子中的 computePayment 方法返回一个 double
  • 构造函数没有返回值:构造函数不需要,也不能声明返回类型,因为它的作用是创建并初始化对象,而不是返回一个额外的值。

5. 小结

  • 方法声明中指定参数类型和参数名,调用方法时需要按正确的类型、数量和顺序传递实参。
  • 构造函数 与方法类似,也可以指定参数列表;调用构造函数时使用 new,并按匹配的实参进行初始化。
  • 参数列表 中的变量称为"形式参数(Parameters)",调用时传入的实际数值 称为"实参(Arguments)"。
  • 返回类型适用于方法,如果方法声明了非 void 类型,就必须在方法体内使用 return。构造函数则没有返回类型,且名称必须与类名相同。

在实际开发中,正确理解和使用参数列表与实参传递,可以帮助你组织和调用方法或构造函数,构建更模块化、更易维护的程序。

相关推荐
小兔崽子去哪了6 分钟前
微信小程序入门
前端·vue.js·微信小程序
陵易居士7 分钟前
Spring如何解决项目中的循环依赖问题?
java·后端·spring
独立开阀者_FwtCoder9 分钟前
# 白嫖千刀亲测可行——200刀拿下 Cursor、V0、Bolt和Perplexity 等等 1 年会员
前端·javascript·面试
不和乔治玩的佩奇16 分钟前
【 React 】useState (温故知新)
前端
那小孩儿16 分钟前
?? 、 || 、&&=、||=、??=这些运算符你用对了吗?
前端·javascript
七月十二19 分钟前
[微信小程序]对接sse接口
前端·微信小程序
Aska_Lv20 分钟前
RocketMQ---core原理
后端
小七_雪球21 分钟前
Permission denied"如何解决?详解GitHub SSH密钥认证流程
前端·github
野原猫之助22 分钟前
tailwind css在antd组件中使用不生效
前端
AronTing25 分钟前
10-Spring Cloud Alibaba 之 Dubbo 深度剖析与实战
后端·面试·架构