方法概述及方法重载

什么是方法

方法就是一个代码片段。 类似于 C 语言中的 “函数”,是若干语句的功能集合。

方法存在的意义:

  1. 是能够模块化的组织代码(当代码规模比较复杂的时候)。
  2. 做到代码被重复使用, 一份代码可以在多个位置使用。
  3. 让代码更好理解更简单。
  4. 直接调用现有方法开发, 不必重复造轮子。

方法定义语法:

// 方法定义
修饰符 方法返回值 方法名称([参数类型 形参 ...]){
 方法体代码;
 [return 返回值];
}
// 方法调用
返回值变量 = 方法名称(实参...);

参数:进入方法的数据
返回值:从方法出来的数据
修饰符:public static(现阶段写法)
返回值类型:也就是方法最终产生的数据结果是什么类型
方法名称:方法的名字,规则和变量一样,小驼峰
参数类型:进入方法的数据是什么类型
return:1.停止当前万法,2.将后面的结果数据返回值还给调用处

示例:

//定义一个两整数相加求和的方法
    public static int sum(int a, int b){
        int result = a + b;
        return  result;
    }

三要素:
返回值类型:int
方法名称:sum
参数列表:int a, int b

方法的调用

		//方法的三种调用方式
        sum(10, 20);                         //单独调用
        System.out.println("==============");
        System.out.println(sum(10, 20));     //打印调用
        System.out.println("==============");
        int num = sum(20, 30);               //赋值调用
        System.out.println(num);

在这里插入图片描述
注意事项:

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

方法调用的执行过程

基本过程

  1. 定义方法的时候, 不会执行方法的代码. 只有调用的时候才会执行.
  2. 当方法被调用的时候, 会将实参赋值给形参.
  3. 参数传递完毕后,就会执行到方法体代码.
  4. 当方法执行完毕之后(遇到 return 语句), 就执行完毕, 回到方法调用位置继续往下执行.
  5. 一个方法可以被多次调用.

实参和形参

代码示例:

//交换两个整型变量
public class Change {
    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的交换
        x = y;
        y = tmp;
    }
}

执行结果:
在这里插入图片描述
可以看到a,b变量并没有交换。
原因分析:
对于基础类型来说, 形参相当于实参的拷贝. 即传值调用,主方法定义的a,b变量为实参。调用swap函数时,是这样的:

  1. 首先a,b的值先被传给swap方法中的x,y。
  2. x,y再在方法中进行交换。
  3. 但是由于x,y是形参,实参和形参占用各自的内存单元,互不干扰,方法中的形参并不会改变实参的值,是一种单向数据传递。

方法的重载

Java 允许同一个类中定义多个同名方法,只要它们的形参列表不同即可。如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,这种情况被称为方法重载(overload)。

方法重载的要求是两同一不同:同一个类中方法名相同,参数列表不同。

public class Demo03MethodOverload {
    public static void main(String[] args) {
        System.out.println(sum(10, 20));
        System.out.println(sum(10, 30, 50));
    }

    public static int sum(int a, int b) {
        return a + b;
    }

    public static int sum(int a, int b, int c) {  //方法名相同,但参数列表不同
        return a + b + c;
    }
}

在这里插入图片描述
注意事项:

  1. 方法重载与这些因素相关:参数个数不同,参数类型不同,参数的多类型顺序不同
  2. 方法重载与这些因素无关:与参数名称,方法的返回值类型无关
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值