zoukankan      html  css  js  c++  java
  • 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行冲突
        */
    
    }
    

      

  • 相关阅读:
    Spring Boot 使用 Dom4j XStream 操作 Xml
    Spring Boot 使用 JAX-WS 调用 WebService 服务
    Spring Boot 使用 CXF 调用 WebService 服务
    Spring Boot 开发 WebService 服务
    Spring Boot 中使用 HttpClient 进行 POST GET PUT DELETE
    Spring Boot Ftp Client 客户端示例支持断点续传
    Spring Boot 发送邮件
    Spring Boot 定时任务 Quartz 使用教程
    Spring Boot 缓存应用 Memcached 入门教程
    ThreadLocal,Java中特殊的线程绑定机制
  • 原文地址:https://www.cnblogs.com/yzg-14/p/12189369.html
Copyright © 2011-2022 走看看