• 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;
        }
    }
  • 相关阅读:
    22. Generate Parentheses
    21. Merge Two Sorted Lists
    20. Valid Parentheses
    19. Remove Nth Node From End of List
    18. 4Sum
    JDK7新特性
    类Enum
    装饰设计模式
    模板设计模式
    反射
  • 原文地址:https://www.cnblogs.com/birdGe/p/13382075.html
Copyright © 2020-2023  润新知