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

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

相关推荐
二川bro12 分钟前
依赖注入详解与案例(前端篇)
前端
JH307321 分钟前
【SpringBoot】SpringBoot中使用AOP实现日志记录功能
java·spring boot·后端
anqi271 小时前
在sheel中运行Spark
大数据·开发语言·分布式·后端·spark
程序员小刚1 小时前
基于SpringBoot + Vue 的作业管理系统
vue.js·spring boot·后端
神秘代码行者2 小时前
Vue项目Git提交流程集成
前端·vue.js·git
问道飞鱼2 小时前
【Springboot知识】Springboot计划任务Schedule详解
java·spring boot·后端·schedule
阿黄学技术3 小时前
Vite简单介绍
前端·前端框架·vue
o0o0o0D3 小时前
jmeter 执行顺序和组件作用域
后端
神仙别闹4 小时前
基于ASP.NET+MySQL实现待办任务清单系统
后端·mysql·asp.net
程序员buddha4 小时前
【Spring Boot】Spring Boot + Thymeleaf搭建mvc项目
spring boot·后端·mvc