方法

1.方法概述

1.1什么是方法

  • 方法是讲具有独立功能的代码块组织称一个整体,使之成为具有特殊功能的代码集

注意:

  • 方法必须先创建后使用,该过程称为方法定义
  • 方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用
package com.itheima_01;

public class MethodDemo {
    public static void main(String[] args) {
    //调用方法
        isEvenNumber();

    }

    //需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数
    public static void isEvenNumber(){
        //定义变量
        int num = 10;

        //判断该数是否是偶数
        if(num % 2 == 0){
            System.out.println("是偶数");
        }else {
            System.out.println("是奇数");
        }
    }
}

小案例(带参数):

package com.itheima_01;
/*
* 需求:
*       设计一个方法用于打印两个数字中的较大值,数据来源于方法参数
* 思路:
*       1.定义一个方法,用于打印两个数字中的较大值
*       2.为方法定义两个参数,用于接收两个数字
*       3.使用分支语句分两种情况对两个数字的大小关系进行处理
*       4.在main()方法中调用定义好的方法(使用常量)
*       5.在main()方法中调用定义好的方法(使用变量)
*
* */
public class MethodDemo02 {
    public static void main(String[] args) {
        //使用常量
        getMax(10,20);
        //使用变量
        int a = 99;
        int b = 55;
        getMax(a,b);
    }
    //定义一个方法,用于打印两个数字中的较大值
    public static void getMax(int a,int b){
        //使用分支语句分两种情况对两个数字的大小关系进行处理
        if (a > b){
            System.out.println(a);
        }else {
            System.out.println(b);
        }
    }

}

1.2方法的通用格式

格式:

public static 返回值类型 方法名(参数){

​ 方法体;

​ return 数据;

}

定义方法时,要做到两个明确

  • 明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void,如果有,写对应的数据类型
  • 明确参数:主要是明确参数的类型和数量

调用方法时

void类型的方法,直接调用即可

非void类型的方法,推荐使用变量接受调用

2.方法重载

2.1方法重载概述

方法重载是指在同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载

  • 多个方法在同一个类中
  • 多个方法具有相同的方法名
  • 多个方法的参数不相同,类型不同或者数量不同

2.2方法重载特点

  • 重载仅仅对应方法的定义,和方法的调用无关,调用方式参照标准格式
  • 重载仅仅针对同一个类中方法的名称与参数进行识别,和返回值无关,换句话说就是不能通过返回值来确定两个方法是否相互构成重载。在方法调用的时候,JVM会通过参数的不同来区分同名的方法。
//函数重载和返回值无关,下列两个函数没有重载关系
public static void f(int a){
    //方法体
}
public static int f(int a ){
    //方法体
}

案例:

package com.itheima_01;

public class MethodDemo03 {
    public static void main(String[] args) {
        //调用方法
        int result1 = sum(11,22);
        System.out.println(result1);
        double result2 = sum(11.1,12.2);
        System.out.println(result2);
        int result3 = sum(11,22,33);
        System.out.println(result3);
    }
    //需求1:求两个int类型数据和的方法
    public static int sum(int a,int b){
        return a + b;
    }
    //需求2:求两个double类型数据和的方法
    public static double sum(double a,double b){
        return a + b;
    }
    //需求3:求三个int类型数据和的方法
    public static int sum(int a,int b,int c){
        return a + b +c;
    }



}

3.方法的参数传递

3.1 基本类型的参数传递

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

package com.itheima_01;

public class MethodDemo04 {
    public static void main(String[] args) {
        int number = 100;
        System.out.println("改变前:"+ number);
        change(number);
        System.out.println("改变后:"+ number);
    }
    public static void change(int number){
        number = 200;
    }
}
//改变前:100
//改变后:100

3.2引用类型的参数传递

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

package com.itheima_01;

public class MethodDemo05 {
    public static void main(String[] args) {
        int[] arr = {10,20,30};
        System.out.println("调用change方法前arr[1]:"+arr[1]);
        change(arr);
        System.out.println("调用change方法后arr[1]:"+arr[1]);
    }
    public static void change(int[] arr){
        arr[1] = 200;
    }
}
//调用change方法前arr[1]:20
//调用change方法后arr[1]:200

数组遍历小案例

package com.itheima_01;

public class MethodDemo06 {
    public static void main(String[] args) {
        int[] arr = {11,22,33,44,55};
        //调用遍历方法
        printArray(arr);
    }
    //定义数组通用遍历方式
    public static void printArray(int[] arr){
        System.out.print("[");
        for (int x = 0;x < arr.length;x++){
            if (x == arr.length - 1){   //判断是否是最后一个元素来确定加不加逗号
                System.out.print(arr[x]);
            }else {
                System.out.print(arr[x]+",");
            }
        }
        System.out.println("]");
    }
}
posted on 2020-12-04 08:37  凌落宸  阅读(140)  评论(0编辑  收藏  举报