Java奠基方法的讲解与使用

Posted 亦世凡华、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java奠基方法的讲解与使用相关的知识,希望对你有一定的参考价值。

目录

方法概述

方法的定义与调用

方法的重载

方法的值传递


方法概述

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

方法的定义与调用

在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");
    

方法的值传递

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

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内存值

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

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;
    

以上是关于Java奠基方法的讲解与使用的主要内容,如果未能解决你的问题,请参考以下文章

Java 系书籍,,,,,,,,,,,,,

学java用哪本书好?

JAVA编程语言基础知识点讲解

Java的基本使用

数据结构与算法分析 java语言描述(原书第3版)pdf

数据结构与算法分析_Java语言描述(第2版)pdf