Java基础语法(下)-函数与方法

01.方法定义格式及格式解释

package com.bird_01;
/*
 * 方法:其实就是完成特定功能的代码块
 * 
 * 定义格式:
 *         修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){
 *                 方法体;
 *                 return 返回值
 *             }
 * 格式解释:
 *         A:修饰符         目前记住public static
 *         B:返回值类型        用于限定返回值的数据类型
 *         C:方法名        为了方便我们调用方法的名字
 *         D:参数类型        用于限定调用方法时传入的数据的类型
 *         E:参数名        用于接收调用方法时传入的数据的变量
 *         F:方法体        完成功能的代码
 *         G:return    结束方法,并且把返回值带给调用者
 *             
 */
public class MethodDemo {
    
}

02.求和方法的编写

package com.bird_01;
/*
* 写一个方法有两个明确:
 *         A:返回值类型        明确功能结果的数据类型
 *         B:参数列表        明确有几个参数,以及参数的数据类型    
 */
public class MethodDemo {
    public static void main(String[] args) {
        
    }
    
    /*
     * 两个明确:
     *         返回值类型:int
     *         参数列表:int a, int b
     */
    public static int sum(int a,int b){
        int c = a + b;
        return c;
    }
}

03.求和方法的调用

package com.bird_01;
/*
 * 方法的调用:(有明确返回值的方法调用)
 *         A:单独调用:没有意义
 *         B:输出调用,有意义,但是不够好,因为我可能需要拿结果进行进一步的操作
 *         C:赋值调用,推荐方式
 */
public class MethodDemo2 {
    public static void main(String[] args) {
        //单独调用
        //sum(10,20);
        
        //输出调用
        //System.out.println(sum(10,20));
        
        //赋值调用
        int result = sum(10,20);
        //可以对result进行操作
        //result += 10;
        System.out.println(result);
    }

    /*
     * 求和方法
     * 
     * 两个明确: 返回值类型:int 参数列表:int a,int b
     * 
     */
    public static int sum(int a, int b) {
        int c = a + b;
        return c;
    }
}

 04.求和方法调用图解

05.方法练习之获取两个数据中较大值

package com.bird_01;

import java.util.Scanner;

/*
 * 键盘录入两个数据,返回两个数中的较大值
 */
public class MethodTest {
    public static void main(String[] args) {
        // 创建输入对象
        Scanner sc = new Scanner(System.in);

        // 接收数据
        System.out.println("请输入第一个数据");
        int a = sc.nextInt();
        System.out.println("请输入第二个数据");
        int b = sc.nextInt();

        // 调用方法
        int c = getMax(a, b);
        System.out.println("最大的数是:" + c);
    }

    /*
     * 返回两个数中的较大值
     * 
     * 两个明确: 返回值类型:int 参数列表:int a,int b
     */
    public static int getMax(int a, int b) {
        if (a > b) {
            return a;
        } else {
            return b;
        }
    }
}

06.方法练习之比较两个数是否相等

package com.bird_01;

import java.util.Scanner;

/*
 * 键盘录入两个数据,比较两个数是否相等
 */
public class MethodTest2 {
    public static void main(String[] args) {
        //创建输入对象
        Scanner sc = new Scanner(System.in);
        
        //接收数据
        System.out.println("请输入第一个数据");
        int x = sc.nextInt();
        
        System.out.println("请输入第二个数据");
        int y = sc.nextInt();
        
        //调用方法
        boolean b = compare(x,y);
        
        //输出结果
        System.out.println("b:"+b);
    }

    /*
     * 比较两个数是否相等
     * 
     * 两个明确: 返回值类型:boolean 参数列表:int a,int b
     */
    public static boolean compare(int a, int b) {
        if (a == b) {
            return true;
        } else {
            return false;
        }
    }
}

 07.方法练习之比较三个数的最大值

package com.bird_01;

import java.util.Scanner;

/*
 * 键盘录入三个数,返回其中最大值
 */
public class MethodTest3 {
    public static void main(String[] args) {
        //创建键盘输入对象
        Scanner sc = new Scanner(System.in);
        
        //接收录入数据
        System.out.println("请输入第一个数据");
        int a = sc.nextInt();
        
        System.out.println("请输入第二个数据");
        int b = sc.nextInt();
        
        System.out.println("请输入第三个数据");
        int c = sc.nextInt();
        
        //调用方法
        int max = getMax(a,b,c);
        
        //输出结果
        System.out.println("最大数是:"+max);
    }

    /*
     * 返回三个数的最大值
     * 
     * 两个明确: 返回值类型:int 参数列表:int a, int b,int c
     */
    public static int getMax(int a, int b, int c) {
        int max = a;
        if (b > max) {
            max = b;
        }
        if (c > max) {
            max = c;
        }
        return max;
    }
}

 08.void修饰符方法的调用

package com.bird_02;
/*
 * 需求:写一个方法,在控制台输出10次HelloWorld案例
 * 
 * 两个明确:
 *         返回值类型:void
 *         参数列表:无
 * 
 * 如果一个方法没有明确的返回值类型,也不能把返回值类型空出来,应该写void表示无返回值类型。
 * 
 * 方法调用:(void修饰符方法调用)
 *         只能单独调用
 */
public class MethodDemo {
    public static void main(String[] args) {
        //单独调用
        printHelloWorld();
        
        //输出调用
        //System.out.println(printHelloWorld());
        
        //赋值调用
        //void v = printHelloWorld();
    }
    
    /*
     * 在控制台输出10次HelloWorld
     * 
     * 两个明确:
     *         返回值类型:void
     *         参数列表:没有参数
     */
    public static void printHelloWorld(){
        for(int i=0;i<10;i++){
            System.out.println("HelloWorld");
        }
    }
}

 09.方法练习之打印1~n之间的数

package com.bird_02;
/*
 * 写一个方法,传递一个整数(大于1),在控制台打印1到该数据的值
 */
public class MethodTest {
    public static void main(String[] args) {
        //调用方法
        printNumber(10);
    }
    /*
     * 写一个方法,传递一个整数(大于1),在控制台打印1到该数据的值
     * 
     * 两个明确:
     *         返回值类型:void
     *         参数列表:int n
     */
    public static void printNumber(int n){
        for(int i=1;i<=n;i++){
            System.out.print(i+"  ");
        }
    }
}

 10.方法练习之打印所有的水仙花数

package com.bird_02;
/*
 * 写一个方法,使用打印所有水仙花数在控制台
 */
public class MethodTest1 {
    public static void main(String[] args) {
        //调用
        printFlower();
    }
    /*
     * 写一个方法,使用打印所有水仙花数在控制台
     * 
     * 两个明确:
     *         返回值类型:void
     *         参数列表:没有参数
     */
    public static void printFlower(){
        for(int i=100;i<1000;i++){
            int ge = i%10;
            int shi = i/10%10;
            int bai = i/100%10;
            if((ge*ge*ge+shi*shi*shi+bai*bai*bai)==i){
                System.out.println(i);
            }
        }
    }
}

11.方法重载的概述和基本使用

package com.bird_03;

/*
 * 方法重载:在同一个类中,出现了方法名相同的情况
 * 方法重载特点:
 *             方法名相同,参数列表不同。与返回值无关
 *             参数列表不同:
 *                     参数的个数不同
 *                     参数对应的类型不同
 * 
 * 注意:
 *         在调用方法的时候,java虚拟机会通过参数列表的不同来区分同名的方法
 */
public class MethodDemo {
    public static void main(String[] args) {
        // 定义变量
        int a = 10;
        int b = 20;
        // 求和方法
        int ruselt = sum(a, b);
        System.out.println("ruselt:" + ruselt);

        // 定义变量
        int x = 10;
        int y = 20;
        int z = 30;
        // 求和方法
        int ruselt2 = sum(x, y, z);
        System.out.println("ruselt2:" + ruselt2);
    }

    // 不能出现方法名相同,参数类型相同的情况
    // public static int sum(int x,int y){
    //
    // }

    // 求三个数据的和
    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;
    }
}

 12.方法重载练习之比较两个数据是否相等

package com.itheima_03;
/*
 * 比较两个数据是否相等。参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型,并在main方法中进行测试
 */
public class MethodTest {
    public static void main(String[] args) {
        //System.out.println(compare(10, 20));
        
        //System.out.println(compare((byte)10, (byte)20));
        
        //System.out.println(compare((short)10, (short)20));
        
        System.out.println(compare(10L, 20L));
    }
    
    //byte
    public static boolean compare(byte a,byte b) {
        System.out.println("byte");
        return a == b;
    }
    
    //short
    public static boolean compare(short a,short b) {
        System.out.println("short");
        return a == b;
    }
    
    //int
    public static boolean compare(int a,int b) {
        System.out.println("int");
        return a == b;
    }
    
    //long
    public static boolean compare(long a,long b) {
        System.out.println("long");
        return a == b;
    }
}

 13.方法的形式参数是基本类型

package com.bird_04;
/*
 * 方法的参数如果是基本数据类型:形式参数的改变不影响实际参数。
 * 
 * 形式参数:用于接收实际参数的变量
 * 实际参数:实际参与运算的变量
 */
public class ArgsDemo {
    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
    }

}

 14.方法的形式参数是基本类型图解

 15.方法的形式参数是引用类型

package com.bird_04;
/*
 * 如果参数是引用数据类型:
 *         形式参数的改变直接影响实际参数
 */
public class ArgsDemo2 {
    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]);
        }
        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++)
        {
            if(arr[x]%2==0)
            {
                arr[x]*=2;
            }
        }
    }

}

16.方法的形式参数是引用类型图解

 17.方法练习之数组遍历

package com.bird_05;

/*
 * 把遍历数组改进为方法实现,并调用方法
 */
public class MethodTest {
    public static void main(String[] args) {
        // 声明数组
        int[] arr = { 11, 22, 33, 44, 55 };

        // 调用方法
        printArray(arr);
    }

    /*
     * 两个明确: 返回值类型:void 参数列表:int[] arr
     */
    public static void printArray(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                System.out.print(i + "]");
            } else {
                System.out.print(i+",");
            }
        }
    }
}

18.方法练习之获取数组最值

package com.bird_05;
/*
 * 把获取数组最值用方法实现,并调用
 */
public class MethodTest2 {
    public static void main(String[] args) {
        //定义数组
        int[] arr = {22,88,61,72,10};
        //调用方法
        int max = getMax(arr);
        System.out.println("数组最大数max="+max);        
    }
    
    /*
     * 两个明确:
     *         返回值类型:int
     *         参数列表:int[] arr
     */
    public static int getMax(int[] arr){
        //定义参照数
        int max = arr[0];
        //循环比较
        for(int i=1;i<arr.length;i++){
            if(arr[i]>max){
                max = arr[i];
            }
        }
        return max;
    }
}

 19.方法练习之数组元素求和

package com.bird_05;
/*
 * 写一个方法,用于对数组进行求和,并调用方法。
 */
public class MethodTest3 {
    public static void main(String[] args) {
        //定义数组
        int[] arr = {1,2,3,4,5};
        
        //调用方法
        int sum = sum(arr);
        System.out.println("数组的总和是"+sum);
    }
    
    /*
     * 两个明确:
     *         返回值类型:int
     *         参数列表:int[] arr
     */
    public static int sum(int[] arr){
        //定义求和参数
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum+=arr[i];
        }
        return sum;
    }
}
原文地址:https://www.cnblogs.com/birdGe/p/13382075.html