函数与方法

方法:

简单的说:方法就是完成特定功能的代码块

格式:

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

解释

1:修饰符 目前记住 public static
2:返回值类型 用于限定返回值的数据类型
3:方法名 一个名字,为了方便我们调用方法
4:参数类型 用于接收调用方法时传入的数据的类型
5:参数名 用于接收调用方法时传入的数据的变量
6:方法体 完成功能的代码
7:return 结束方法,把返回值带给调用者

写方法的两个明确

1.返回值类型 明确功能结果的数据类型
2.参数列表 明确有几个参数,以及参数的类型

    public static int sum(int a, int b) {
        // int c = a + b;
        // return c;

        return a + b;
    }

方法的调用(有明确返回值的)

1.单独调用,没有意义
2.输出调用,有意义,但是不够好,因为我不一定非要把结果输出
4.赋值调用,推荐方式

public class MethodDemo2 {
    // 求和的方法
    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);
    }
}

void 修饰符的方法调用(没有明确返回值)

1.其实就是void类型方法的调用
2.只能单独调用

在控制台上输出10次HelloWorld案例

public static void printHelloWorld() {
        for(int x=1; x<=10; x++) {
            System.out.println("HelloWorld");
        }
    }
    
    public static void main(String[] args) {
        //单独调用
        printHelloWorld();
        
        //输出调用
        //System.out.println(printHelloWorld());
        //System.out.println(void);
        
        //赋值调用
        //void v = printHelloWorld();
    }

方法重载

概述

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

特点

与返回值类型无关,只看方法名和参数列表
参数列表不同:

1.参数的个数不同。
2.参数对应的类型不同。

在调用时,虚拟机通过参数列表的不同来区分同名方法

public class MethodDemo {
    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 = sum2(a,b,c);
        //System.out.println("result2:"+result2);
        result = sum(a,b,c);
        System.out.println("result:"+result);
    }
    
    
    //两个float类型的数据求和
    public static float sum(float a,float b) {
        return a + b;
    }

    // 三个整数的求和
    public static int sum(int a,int b,int c) {
        return a + b + c;
    }
    
    /*
    public static int sum2(int a, int b, int c) {
        return a + b + c;
    }
    */

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

方法中的参数传递

方法的形式参数为基本数据类型

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

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
    }

方法的形式参数为引用数据类型

形式参数的改变直接影响实际参数

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]);
        }
        System.out.println("----------------");
        change(arr);
        for (int x = 0; x < arr.length; x++) {
            System.out.println(arr[x]);
        }
    }

    public static void change(int[] arr) {
        for (int x = 0; x < arr.length; x++) {
            // 如果元素是偶数,值就变为以前的2倍
            if (arr[x] % 2 == 0) {
                arr[x] *= 2;
            }
        }
    }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容