zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    771. Jewels and Stones
    706. Design HashMap
    811. Subdomain Visit Count
    733. Flood Fill
    117. Populating Next Right Pointers in Each Node II
    250. Count Univalue Subtrees
    94. Binary Tree Inorder Traversal
    116. Populating Next Right Pointers in Each Node
    285. Inorder Successor in BST
    292. Nim Game Java Solutin
  • 原文地址:https://www.cnblogs.com/ajing2018/p/14639196.html
Copyright © 2011-2022 走看看