Java_Day9(方法的解读、分类、定义、返回值和参数、重载,参数的传递)

Java_Day9(方法的解读、分类、定义、返回值和参数、重载,参数的传递)

解读方法

方法:是一个具有特定功能的代码/代码片段的合集

方法必须先定义后使用

方法可以是JDK提供的,也可以是自己定义的

public static void main(String[] args){
	
}

public static :方法的访问修饰
void : 方法的返回值类型
main: 方法的名称 (方法的命名遵守小驼峰命名法)
String[] args: 方法的参数
{}:方法打的具体内容

方法的分类

  1. 根据返回值类型:
    有返回值和无返回值
  2. 根据参数:
    有参合无参

方法的定义

Public  static  返回值类型  方法名称 ([参数列表]{ 方法体}

方法的定义需要注意:

  1. 是否有返回值,如果有,需要明确返回值类型 如果没有则为void
  2. 是否有参数,如果有,需要明确有几个参数以及每个参数的类型

方法的使用:

  1. 定义了方法以后,方法不能自己执行 ,需要在main方法或其他已经被main调用的 方法中手动进行调用。
  2. 方法只有调用了才会执行
  3. 一个类中可以有多个方法
  4. 方法之间的关系是平行的,不可以嵌套使用

方法的返回值及参数

  1. 方法是否有返回值根据方法的功能决定
  2. 方法的参数根据方法的具体功能决定
  3. 方法具有通用性,是用来解决一类问题的这样的一个代码片段

注:

  1. 返回值:
    如果方法有返回值,使用return进行返回,return后跟返回的值或者结果
    如果没有返回值,则return可以省略
  2. 参数:
    在方法定义时确定参数的个数及类型
    方法被调用时,需要和定义时的参数相对应

形参和实参的区别和联系

  1. 形参只有在函数被调用时才会被分配内存,调用结束后释放,只在函数内部有效,不能在函数外部使用
  2. 实参可以是常量、变量、表达式、函数等,在进行函数调用时。实参必须有确定的值
  3. 实参和形参在数量、类型、顺序上必须严格一致,如果能够进行自动类型转换,或者进行了强制类型转换,那么实参类型也可以不同于形参类型
  4. 函数调用中数据传递是单向的,只能把实参的值传递给形参,不能反向进行,一旦完成数据的传递,实参和形参就没有任何联系了,所以形参的值发送改变并不会影响实参

方法的执行内存分析

在这里插入图片描述
当方法被调用时才创建内存,结束时即释放

方法的重载

public class MethodDemo_02 {
    // 需求:计算两个整数的和
    public static  int  sum(int a , int b ){
        //return  a + b;
        int s = a  + b;
        return  s;
    }
    // 需求  计算三个整数 的 和
    public  static int  sum(int a , int b , int c){
        return  a + b + c;
    }
    // 需求 计算两个整数和一个 浮点数 的和
    public  static double sum (int a,int b,double d){
        return  a + b + d;
    }
    public  static double sum (double a,int b,int d){
        return  a + b + d;
    }

    public static void main(String[] args) {
        int s = sum(5,6);
        System.out.println(s);
        int s1 = sum(5,6,7);
        System.out.println(s1);
        double s2 = sum(5,6,5.6);
        System.out.println(s2);
        double s3 = sum(5.6,7,8);
        System.out.println(s3);
    }
}

在sum方法之间构成了方法的重载

特点:

  1. 必须是同一个类中的方法
  2. 方法名称相同
  3. 参数列表不同

判断依据:

  1. 定义是否在同一个类中
  2. 方法的名称是否相同
  3. 参数列表是否不同:
  • 个数不同
  • 类型不同
  • 类型不同的参数顺序不同

方法的返回类型不能作为方法重载的判断依据
对于重载的方法在调用的时候是由jvm自动根据传入的参数的情况来自动调用相匹配的方法

参数的传递

public class MethodDemo_03 {
    // 交换两个整数的值
    public  static void  change(int a , int b ){
        int temp = a;
        a = b ;
        b = temp;
        System.out.println(a +"======"+b);
    }
//  交换数组中的两个元素的位置
    public  static void change(int[] arr , int index1 , int  index2){
        int temp  = arr[index1];
        arr[index1] = arr[index2];
        arr[index2] =temp;
        for (int i = 0 ; i < arr.length; i++){
            System.out.println(arr[i]);
        }
    }
    public static void main(String[] args) {
        int x = 8;
        int y = 9;
        change(x,y);
        System.out.println(x + "---" + y);
        int[] arr = {3,1,5,7,8,3,2,9};
        change(arr,1,7);
        System.out.println("-------------------------------");
        for (int i = 0 ; i < arr.length; i++){
            System.out.println(arr[i]);
        }
    }
}

交换两个整数的过程:
在这里插入图片描述
交换数组中两个元素的过程:
在这里插入图片描述

参数的传递:

  1. 值传递:
    基本类型的数据传递都是值
  2. 引用传递:
    传递的都是地址

区别:
值传递 :传递的是值的本身所以对于传递过去的值的修改,不会影响原来的值本身
引用传递 :由于传递的是地址,传递之后的两个引用指向的是同一个地址,所以任何的操作对引用的地址内容的修改都将影响到地址中的内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值