Java奠基】方法的讲解与使用

生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

导读:本篇文章讲解 Java奠基】方法的讲解与使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

目录

方法概述

方法的定义与调用

方法的重载

方法的值传递


方法概述

方法是程序中最小的执行单元,在实际开发中会将重复的具有独立功能的代码抽取到方法中,这样可以提高代码的复用性和可维护性。

方法的定义与调用

在Java中定义方法的格式都是相同的,不过根据具体的需要可以抽离成以下三种形式方法,如下:

最简单的方法定义,格式如下:

public static void 方法名() { 方法体(就是打包起来的代码) };

public class Main {
    public static void main(String[] args) {
        // 调用say方法
        say();
    }
    // 定义一个方法
    public static void say(){
        System.out.println("你好,世界!"); // 你好,世界!
    }
}

带参数的方法定义,格式如下:

public static void 方法名(参数1,参数2….){ 方法体 };

求和

public class Main {
    public static void main(String[] args) {
        // 调用getSum方法
        getSum(10,20); // 实参,方法调用中的参数
    }
    // 定义一个方法
    public static void getSum(int n,int m){ // 形参,方法定义中的参数
        int sum = n + m;
        System.out.println(sum);
    }
}

打印原数组

public class Main {
    public static void main(String[] args) {
        // 将数组进行打印在控制台
        int[] arr = {12,14,15,16,17,18};
        // 调用方法
        printArr(arr); // [12,14,15,16,17,18]
    }
    // 定义一个方法
    public static void printArr(int[] arr){
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if(i==arr.length-1){
                System.out.print(arr[i]);
            }else{
                System.out.print(arr[i]+",");
            }
        }
        System.out.print("]");
    }
}

带返回值的方法定义,格式如下:

public static 返回值类型 方法名 (参数) { 方法体; return 返回值; };

如果想在调用处要根据方法的结果,去编写另外一段代码的逻辑,为了在调用处拿到方法产生的结果,就需要定义带有返回值的方法。方法的返回值其实就是方法运行的最终结果。

数组求和

public class Main {
    public static void main(String[] args) {
        // 直接调用,如果是带有返回值的方法,是没有任何结果的
        getSum(10,20,30);

        // 赋值调用
        int result = getSum(10,20,30);
        System.out.println(result); // 60

        // 输出调用
        System.out.println(getSum(10,20,30)); // 60
    }
    // 定义一个方法
    public static int getSum(int n,int m,int x){
        int sum = n + m + x;
        return sum;
    }
}

数组求最大值

public class Main {
    public static void main(String[] args) {
        // 将数组进行打印在控制台
        int[] arr = {12,14,15,16,17,18};
        // 调用方法
        int result = getMax(arr);
        // 打印
        System.out.println(result); // 18
    }
    // 定义一个方法
    public static int getMax(int[] arr){
        int max = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if(max<arr[i]){
                max = arr[i];
            }
        }
        return max;
    }
}

判断数组是否存在元素

public class Main {
    public static void main(String[] args) {
        // 定义数组
        int[] arr = {12,14,15,16,17,18};
        // 判断一个数字是否在数组中存储
        boolean result = decide(arr,10);
        // 打印结果
        System.out.println(result); // false
    }
    // 定义一个方法
    public static boolean decide(int[] arr,int number){
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == number){
                return true;
            }
        }
        // 当数组中的所有数据比较完毕之后,还是没有任何结果则执行以下语句。
        return false;
    }
}

拷贝数组

public class Main {
    public static void main(String[] args) {
        // 定义数组
        int[] arr = {12,14,15,16,17,18};
        // 调用方法拷贝数据
        int[] copyArr = copyArr(arr,1,4);// 14 15 16 
        // 遍历copyArr
        for (int i = 0; i < copyArr.length; i++) {
            System.out.print(copyArr[i]+" ");
        }
    }
    // 定义一个方法
    public static int[] copyArr(int[] arr,int from,int to){
        // 定义数组
        int[] newArr = new int[to - from];
        // 伪造索引
        int index = 0;
        for (int i = from; i < to; i++) {
            newArr[index] = arr[i];
            index++;
        }
        // 将新数组返回
        return newArr;
    }
}

注意

方法不调用就不执行
方法与方法之间是平级关系,不能互相嵌套定义
方法的编写顺序和执行顺序无关
方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return语句不写。如果要编写return,后面不能跟具体的数据。

return语句下面,不能编写代码,因为永远执行不到,属于无效代码。

方法的重载

在同一个类中,定义了多个同名的方法,这些同名的方法具有同种的功能。每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系。

简单理解:同一个类中,方法名相同,参数不同的方法,与返回值无关。

                  参数不同:个数不同、类型不同、顺序不同。

public class Main {
    public static void main(String[] args) {
        // 调用方法
        compare(1,2);
        compare((byte)1,(byte)2);
        compare((short)1,(short)2);
        compare(1.1,2.2);
    }
    // 定义一个方法
    public static void compare(byte b1,byte b2){
        System.out.println("byte");
    }
    public static void compare(short s1,short s2){
        System.out.println("short");
    }
    public static void compare(int i1,int i2){
        System.out.println("int");
    }
    public static void compare(double d1,double d2){
        System.out.println("double");
    }
}

Java奠基】方法的讲解与使用

方法的值传递

传递基本数据类型时,传递的是真实的数据,形参的改变不影响实际参数的值:

public class Main {
    public static void main(String[] args) {
        int number = 100;
        System.out.println("调用change方法前:"+number);// 100
        change(number);
        System.out.println("调用change方法后:"+number);// 100
    }
    // 定义一个方法
    public static void change(int number){
        number = 200;
    }
}

如果想改变number的值,需要将方法中的number的值return出去来修改main方法的number内存值

Java奠基】方法的讲解与使用

传递引用数据类型时,传递的是地址值,形参的改变,影响实际参数的值:

public class Main {
    public static void main(String[] args) {
        int[] arr = {10,130,12,14,144};
        System.out.println("调用change方法前:"+arr[1]);// 130
        change(arr);
        System.out.println("调用change方法后:"+arr[1]);// 200
    }
    // 定义一个方法
    public static void change(int[] arr){
        arr[1] = 200;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/139964.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!