方法的使用

方法的使用

方法就是一个代码片段,类似于c语言中的函数。
方法定义的基本语法:
// 方法定义
public static 方法返回值 方法名称([参数类型 形参 …]){
方法体代码;
[return 返回值];
}
// 方法调用
返回值变量 = 方法名称(实参…);
代码示例:一个方法实现两个整数相加

class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
   
    // 方法的调用
int ret = add(a, b);
System.out.println("ret = " + ret);
}
  // 方法的定义
public static int add(int x, int y) {
return x + y;
}
}
// 执行结果
ret = 30

``

注意事项:

  1. 方法定义时, 参数可以没有. 每个参数要指定类型
  2. 方法定义时, 返回值也可以没有, 如果没有返回值, 则返回值类型应写成 void
  3. 方法定义时的参数称为 “形参”, 方法调用时的参数称为 “实参”.
  4. 方法的定义必须在类之中, 代码书写在调用位置的上方或者下方均可.
  5. Java 中没有 “函数声明” 这样的概念.

方法调用的执行过程

基本规则

  • 定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行.
  • 当方法被调用的时候, 会将实参赋值给形参.
  • 参数传递完毕后, 就会执行到方法体代码.
  • 当方法执行完毕之后(遇到 return 语句), 就执行完毕, 回到方法调用位置继续往下执行.
  • 一个方法可以被多次调用
class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("第一次调用方法之前");
int ret = add(a, b);
System.out.println("第一次调用方法之后");
System.out.println("ret = " + ret);
System.out.println("第二次调用方法之前");
ret = add(30, 50);
System.out.println("第二次调用方法之后");
System.out.println("ret = " + ret);
}
public static int add(int x, int y) {
System.out.println("调用方法中 x = " + x + " y = " + y);
return x + y;
}
}
// 执行结果
一次调用方法之前
调用方法中 x = 10 y = 20
第一次调用方法之后
ret = 30
第二次调用方法之前
调用方法中 x = 30 y = 50
第二次调用方法之后
ret = 80

实参和形参的关系(重要)

代码示例: 交换两个整型变量

class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
swap(a, b);
System.out.println("a = " + a + " b = " + b);
}
public static void swap(int x, int y) {
int tmp = x;
x = y;
y = tmp;
}
}
// 运行结果
a = 10 b = 20

原因分析: 没有完成数据的交换.
对于基础类型来说, 形参相当于实参的拷贝. 即 传值调用

for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
}
// 执行结果
计算 n 的阶乘中! n = 1
计算 n 的阶乘中! n = 2
计算 n 的阶乘中! n = 3
计算 n 的阶乘中! n = 4
计算 n 的阶乘中! n = 5
sum = 153
class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
swap(a, b);
System.out.println("a = " + a + " b = " + b);
}
public static void swap(int x, int y) {
int tmp = x;
x = y;
y = tmp;
}
}
// 运行结果
a = 10 b = 20

可以看到, 对 x 和 y 的修改, 不影响 a 和 b.
解决办法: 传引用类型参数

方法的重载:

有些时候我们需要用一个函数同时兼容多种参数的情况, 我们就可以使用到方法重载。

重载的规则
针对同一个类:
方法名相同
方法的参数不同(参数个数或者参数类型)
方法的返回值类型不影响重载.

当两个方法的名字相同, 参数也相同, 但是返回值不同的时候, 不构成重载.

方法的递归

一个方法在执行过程中调用自身, 就称为 “递归”.
递归相当于数学上的 “数学归纳法”, 有一个起始条件, 然后有一个递推公式

例如, 我们求 N!
起始条件: N = 1 的时候, N! 为 1. 这个起始条件相当于递归的结束条件.
递归公式: 求 N! , 直接不好求, 可以把问题转换成 N! => N * (N-1)!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值