Java基础知识七——方法

一、方法的概述

  方法其实就是完成特定功能的代码块。
定义的格式:

修饰符 返回值类型 方法名(参数类型 参数1,参数类型,参数2,...){
    方法体;
    return 返回值;
}

格式解释:
  修饰符:后面会说,目前先使用public static
  返回值类型:用于限定返回值的数据类型
  方法名:方便我们调用方法
  参数类型:用于限定调用方法是传入的数据的数据类型
  参数名:用于接受调用方法是传入的数据的变量
  方法体:完成特定功能的代码
  return 返回值:结束方法,并把返回值带给调用者

二、方法的定义

  我们在写一个方法前,一般要有两个明确:

  •   返回值类型:其实就是要我们明确方法结果的数据类型
  •   参数列表:其实就是要我们明确有几个参数参加,并且每个参数都是什么数据类型的
    案例:求两个数据之和
    /*
     * 两个明确:
     *      返回值类型:int
     *      参数列表:int a,int b
     */
    public static int sum(int a,int b) {
        int c = a + b;
        return c;
    }

三、方法的调用

1、有返回值的调用

  有返回值的调用方法有三种:
  (1)直接调用,无意义
  (2)输出调用,有意义,但是不够好,因为我不一定非要把结果输出
  (3)赋值调用,推荐方式
例:

public class MethodDemo1 {
    // 求和的方法
    public static int sum(int a, int b) {
        return a + b;
    }

    public static void main(String[] args) {
        // 单独调用
        // sum(10,20);

        // 输出调用
        // System.out.println(sum(10,20));

        // 赋值调用
        int s = sum(10, 20);
        // s+=100;
        System.out.println("s:"+s);
    }
} 
方法调用流程图

2、没有返回值的方法调用

  没有返回值的方法调用只有一个方法,就是直接调用。
例:

public class MethodDemo2 {
    public static void print() {
        System.out.println("这个方法没有返回值");
    }

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

注意:
  如果一个方法没有明确的返回值类型,也不能把返回值类型的地方空出来,这里应该写void表示该方法无返回值。

三、方法的重载

1、方法重载的概述

  在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

2、方法重载的特点

  (1)方法名相同,参数列表不同。

  •   参数的个数不同。
  •   参数对应的数据类型不同。
      (2)方法重载与返回值无关。

注意事项:
  在调用方法的时候,java虚拟机会根据方法名及参数列表的不同来区分方法。

案例:数据的求和

public class MethodDemo3 {
    public static void main(String[] args) {
        //定义两个变量
        int a = 10;
        int b = 20;
        
        //求和
        int result = sum(a,b);
        System.out.println("result:"+result);
        
        //定义变量
        int c = 30;
        int result2 = sum(a,b,c);
        System.out.println("result2:"+result2);
    }
    
    //求三个数据的和

    public static int sum(int a,int b,int c) {
        return a + b + c;
    }
    
    //求两个数据的和
    public static int sum(int a,int b) {
        return a + b;
    }
}

四、方法类型参数详解

1、方法的参数是基本类型

  方法的参数是基本类型的时候,形式参数的改变不影响实际参数。
  形式参数:用于接收实际数据的变量
  实际参数:实际参与运算的变量
例:

public class MethodDemo4 {
    public static void main(String[] args) {
        // 定义变量
        int a = 10;
        int b = 20;
        System.out.println("a:" + a + ",b:" + b);// a:10,b:20
        change(a, b);
        System.out.println("a:" + a + ",b:" + b);// a:10,b:20
    }

    public static void change(int a, int b) { // a=10,b=20
        System.out.println("a:" + a + ",b:" + b);// a:10,b:20
        a = b; // a=20;
        b = a + b;// b=40;
        System.out.println("a:" + a + ",b:" + b);// a:20,b:40
    }

}
基本类型

2、方法参数是引用数据类型

  引用数据类型作为参数传递,形式参数的改变直接影响实际参数。
例:

public class MethodDemo5 {
    public static void main(String[] args) {
        int[] arr = { 1, 2, 3, 4, 5 };
        for (int x = 0; x < arr.length; x++) {
            System.out.println(arr[x]);//1,2,3,4,5
        }
        change(arr);
        for (int x = 0; x < arr.length; x++) {
            System.out.println(arr[x]);//1,4,3,8,5
        }
    }

    public static void change(int[] arr) {
        for (int x = 0; x < arr.length; x++) {
            if (arr[x] % 2 == 0) {
                arr[x] *= 2;
            }
        }
    }

}
引用类型

你可能感兴趣的:(Java基础知识七——方法)