• Java方法升级


    1. 方法格式

    package cn.itcast.day04.demo02;
    
    /*
    方法其实就是若干语句的功能集合。
    
    方法好比是一个工厂。
    蒙牛工厂     原料:奶牛、饲料、水
                产出物:奶制品
    钢铁工厂     原料:铁矿石、煤炭
                产出物:钢铁建材
    
    参数(原料):就是进入方法的数据。
    返回值(产出物):就是从方法中出来的数据。
    
    定义方法的完整格式:
    修饰符 返回值类型 方法名称(参数类型 参数名称, ...) {
        方法体
        return 返回值;
    }
    
    修饰符:现阶段的固定写法,public static
    返回值类型:也就是方法最终产生的数据结果是什么类型
    方法名称:方法的名字,规则和变量一样,小驼峰
    参数类型:进入方法的数据是什么类型
    参数名称:进入方法的数据对应的变量名称
    PS:参数如果有多个,使用逗号进行分隔
    方法体:方法需要做的事情,若干行代码
    return:两个作用,第一停止当前方法,第二将后面的返回值还给调用处
    返回值:也就是方法执行后最终产生的数据结果
    
    注意:return后面的“返回值”,必须和方法名称前面的“返回值类型”,保持对应。
    
    定义一个两个int数字相加的方法。三要素:
    返回值类型:int
    方法名称:sum
    参数列表:int a, int b
    
    方法的三种调用格式。
    1. 单独调用:方法名称(参数);
    2. 打印调用:System.out.println(方法名称(参数));
    3. 赋值调用:数据类型 变量名称 = 方法名称(参数);
    
    注意:此前学习的方法,返回值类型固定写为void,这种方法只能够单独调用,不能进行打印调用或者赋值调用。
    */
    public class Demo02MethodDefine {
    
        public static void main(String[] args) {
            // 单独调用
            sum(10, 20);
            System.out.println("===========");
    
            // 打印调用
            System.out.println(sum(10, 20)); // 30
            System.out.println("===========");
    
            // 赋值调用
            int number = sum(15, 25);
            number += 100;
            System.out.println("变量的值:" + number); // 140
        }
    
        public static int sum(int a, int b) {
            System.out.println("方法执行啦!");
            int result = a + b;
            return result;
        }
    
    }
    package cn.itcast.day04.demo03;
    
    /*
    题目要求:
    定义一个方法,用来打印指定次数的HelloWorld。
     */
    public class Demo03MethodPrint {
    
        public static void main(String[] args) {
            printCount(10);
        }
    
        /*
        三要素
        返回值类型:只是进行一大堆打印操作而已,没有计算,也没有结果要告诉调用处
        方法名称:printCount
        参数列表:到底要打印多少次?必须告诉我,否则我不知道多少次,没法打印。次数:int
         */
        public static void printCount(int num) {
            for (int i = 0; i < num; i++) {
                System.out.println("Hello, World!" + (i + 1));
            }
        }
    
    }
    package cn.itcast.day04.demo03;
    
    /*
    使用方法的时候,注意事项:
    
    1. 方法应该定义在类当中,但是不能在方法当中再定义方法。不能嵌套。
    2. 方法定义的前后顺序无所谓。
    3. 方法定义之后不会执行,如果希望执行,一定要调用:单独调用、打印调用、赋值调用。
    4. 如果方法有返回值,那么必须写上“return 返回值;”,不能没有。
    5. return后面的返回值数据,必须和方法的返回值类型,对应起来。
    6. 对于一个void没有返回值的方法,不能写return后面的返回值,只能写return自己。
    7. 对于void方法当中最后一行的return可以省略不写。
    8. 一个方法当中可以有多个return语句,但是必须保证同时只有一个会被执行到,两个return不能连写。
     */
    public class Demo04MethodNotice {
    
        public static int method1() {
            return 10;
        }
    
        public static void method2() {
    //        return 10; // 错误的写法!方法没有返回值,return后面就不能写返回值。
            return; // 没有返回值,只是结束方法的执行而已。
        }
    
        public static void method3() {
            System.out.println("AAA");
            System.out.println("BBB");
    //        return; // 最后一行的return可以省略不写。
        }
    
        public static int getMax(int a, int b) {
            /*int max;
            if (a > b) {
                max = a;
            } else {
                max = b;
            }
            return max;*/
    
            if (a > b) {
                return a;
            } else {
                return b;
            }
        }
    
    }  

    2. 调用方法的三种形式 

     

     

     3. 方法重载

    package cn.itcast.day04.demo04;
    
    /*
    对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦。
    
    方法的重载(Overload):多个方法的名称一样,但是参数列表不一样。
    好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能。
    
    方法重载与下列因素相关:
    1. 参数个数不同
    2. 参数类型不同
    3. 参数的多类型顺序不同
    
    方法重载与下列因素无关:
    1. 与参数的名称无关
    2. 与方法的返回值类型无关
     */
    public class Demo01MethodOverload {
    
        public static void main(String[] args) {
            /*System.out.println(sumTwo(10, 20)); // 30
            System.out.println(sumThree(10, 20, 30)); // 60
            System.out.println(sumFour(10, 20, 30, 40)); // 100*/
    
            System.out.println(sum(10, 20)); // 两个参数的方法
            System.out.println(sum(10, 20, 30)); // 三个参数的方法
            System.out.println(sum(10, 20, 30, 40)); // 四个参数的方法
    //        System.out.println(sum(10, 20, 30, 40, 50)); // 找不到任何方法来匹配,所以错误!
    
            sum(10, 20);
        }
    
        public static int sum(int a, double b) {
            return (int) (a + b);
        }
    
        public static int sum(double a, int b) {
            return (int) (a + b);
        }
    
        public static int sum(int a, int b) {
            System.out.println("有2个参数的方法执行!");
            return a + b;
        }
    
        // 错误写法!与方法的返回值类型无关
    //    public static double sum(int a, int b) {
    //        return a + b + 0.0;
    //    }
    
        // 错误写法!与参数的名称无关
    //    public static int sum(int x, int y) {
    //        return x + y;
    //    }
    
        public static int sum(double a, double b) {
            return (int) (a + b);
        }
    
        public static int sum(int a, int b, int c) {
            System.out.println("有3个参数的方法执行!");
            return a + b + c;
        }
    
        public static int sum(int a, int b, int c, int d) {
            System.out.println("有4个参数的方法执行!");
            return a + b + c + d;
        }
    
    }
    package cn.itcast.day04.demo04;
    
    public class Demo03OverloadJudge {
    
        /*
        public static void open(){} // 正确重载
        public static void open(int a){} // 正确重载
        static void open(int a,int b){} // 代码错误:和第8行冲突
        public static void open(double a,int b){} // 正确重载
        public static void open(int a,double b){} // 代码错误:和第6行冲突
        public void open(int i,double d){} // 代码错误:和第5行冲突
        public static void OPEN(){} // 代码正确不会报错,但是并不是有效重载
        public static void open(int i,int j){} // 代码错误:和第3行冲突
        */
    
    }
    

      

  • 相关阅读:
    转:SQL 操作结果集 -并集、差集、交集、结果集排序
    转:JSON 获取属性值的方法
    Could not find a getter for orderItems in class
    转:ServletContext,ActionContext,ServletActionContext
    Could not parse mapping document from input stream hibernate配置异常
    According to TLD or attribute directive in tag file, attribute test does not accept any expressions
    Codeforces Round #273 (Div. 2)-A. Initial Bet
    队列

    Codeforces Round #272 (Div. 2)-C. Dreamoon and Sums
  • 原文地址:https://www.cnblogs.com/yzg-14/p/12189369.html
Copyright © 2020-2023  润新知