• Java基础00-方法10


    1. 方法概述

    1.1 什么是方法

    将好几串代码组成一个整体,这个整体就是方法。

     

     

    2. 方法的定义和调用

    2.1 方法定义

    2.2 方法的调用

    方法名()就可以调用方法

    代码示例:
    必须在main方法中调用方法,因为main是方法的入口。

    运行结果:

     

    2.3 方法调用过程

    先从main方法开始,找到方法后再调用方法。

    执行完第6步方法后,这个方法就算结束了,消失了,然后再执行方法后面的代码,如果没有就结束运行。

    2.4 方法练习

    3. 带参数方法的定义和调用

    3.1 带参数方法定义

    3.2 带参数的方法调用

    3.3 形参和实参

    形参:方法定义中未被赋值的参数。
    实参:方法调用中赋值给形参的参数。

    代码示例:

    运行结果:

     3.4 带参数方法练习

    4. 带返回值方法的定义和调用

    4.1 带返回值方法的定义

    4.2 带返回值方法的调用

    代码示例:

    4.3 带返回值方法练习

    5. 方法的注意事项

    5.1 方法注意事项

    如果想return返回值,方法中就必须添加数据类型。

    5.2 方法的通用格式

     

     

    6. 方法重载

    6.1 方法重载概述

     

     

    6.2 方法重载特点

    方法名相同,参数不同,与返回值无关

     

    代码示例:

    运行结果:

    注意:
    方法重载与返回值无关
    在调用的时候,Java虚拟机会通过参数的不同来区分同名的方法

    6.3 方法重载练习

    7. 方法重载的传递

    7.1 方法重载传递(基本类型)

    对于基本数据类型的参数,形式参数的改变,不会影响实际参数的值

    先运行main方法,栈内存中存放main方法。

    运行 int number = 100; 栈内存中存放。

    输出number的值,100;

    调用change方法,也会被方法栈内存;

    进入number方法,方法中有一个形参int number,栈内存中也会存放一个,新参的值由main方法中的number赋值,所以他也是100。

    在进入change方法中,将change的新参number修改为200.

    但是main方法中的number还是100,所以,对于基本数据类型的参数,形式参数的改变,不影响实际参数的值

    第二次输出还是100.

    7.2 方法参数传递(引用类型)

    对于引用类型的参数,形式参数的改变,会影响实际参数的值。

    我们来看看内存执行流程。
    方法从main方法开始执行,存入栈内存。

    执行int [ ] arr = {10,20,30}; ,左边放入栈内存,右边放入堆内存
    因为,数组还有一种写法是,int [ ] arr = new int [] {10,20,30};,所以 数组为自己new了一块空间存放值。

    输出arr[1] 的值,20

    然后调用change方法,放入栈内存

    运行change方法,将形参int [] arr放入栈内存,将实参arr(arr的内存地址为001)放入新参,

    进入change方法,将形参arr[1]的值修改为200(因为main方法和change方法共用一个堆内存地址,所以是可以修改值的)

     

    所以,对于引用类型的参数,形式参数的改变,影响实际参数的值。

    7.3 案例

    • 数组遍历

     public static void main(String[] args) {
        int arrays[] = {10,3,34,26,57};
        getArray(arrays);
     }
    
       public static  void getArray(int arr[]){
           for (int i = 0; i < arr.length; i++) {
               System.out.print(arr[i]);
           }
       }
    •  获取数据最大值

    public static void main(String[] args) {
        int arrays[] = {10,3,34,26,57};
        int maxNum = getMax(arrays);
        System.out.println(maxNum);
    }
    
    public static int getMax(int[] num){
        int max = num[0];
        for (int i = 1; i < num.length; i++) {
            if(max<num[i]){
                max = num[i];
            }
        }
        return max;
    }
  • 相关阅读:
    BSGS模板(互质与不互质) 洛谷P4195、P3846
    整除分块(数论分块)
    洛谷P3327 [SDOI2015]约数个数和——莫比乌斯反演
    模块二
    模块
    二分法 匿名函数
    3.26作业
    函数的递归调用
    yield表达式 三元表达式
    3.25作业
  • 原文地址:https://www.cnblogs.com/ajing2018/p/14639196.html
Copyright © 2020-2023  润新知