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。构造函数则没有返回类型,且名称必须与类名相同。

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

相关推荐
Warren983 小时前
Lua 脚本在 Redis 中的应用
java·前端·网络·vue.js·redis·junit·lua
mCell3 小时前
JavaScript 运行机制详解:再谈 Event Loop
前端·javascript·浏览器
帧栈7 小时前
开发避坑指南(27):Vue3中高效安全修改列表元素属性的方法
前端·vue.js
max5006007 小时前
基于桥梁三维模型的无人机检测路径规划系统设计与实现
前端·javascript·python·算法·无人机·easyui
smileNicky7 小时前
SpringBoot系列之从繁琐配置到一键启动之旅
java·spring boot·后端
excel7 小时前
使用函数式封装绘制科赫雪花(Koch Snowflake)
前端
David爱编程8 小时前
为什么必须学并发编程?一文带你看懂从单线程到多线程的演进史
java·后端
long3168 小时前
java 策略模式 demo
java·开发语言·后端·spring·设计模式
萌萌哒草头将军8 小时前
Node.js v24.6.0 新功能速览 🚀🚀🚀
前端·javascript·node.js
rannn_1119 小时前
【Javaweb学习|黑马笔记|Day1】初识,入门网页,HTML-CSS|常见的标签和样式|标题排版和样式、正文排版和样式
css·后端·学习·html·javaweb