Day05 总结笔记

01-办法介绍

  • 介绍 : 办法 | 函数 (method) 一段具备独立性能的代码块, 不调用就不执行.
  • 益处 :

    • 进步代码的可浏览性

      • 能够将挤在一起的臃肿代码, 依照性能进行分类管理
    • 进步代码的复用性

      • 本来须要反复编写的代码, 当初抽取到办法中, 只须要写一次, 对办法进行屡次调用即可.
    • 问题 : 办法是否能够进步程序的执行效率 ?
    • 答复 : 不能够 !

02-办法的定义和调用格局

  • 办法通用定义格局 :
public static 返回值类型 办法名 (参数列表) {    办法体;    return 后果数据;}public static : 目前临时记住, 修饰符返回值类型 : 跟办法返回的后果数据无关.办法名 : 见名知意, 小驼峰命名法参数列表 : 办法运行之前所须要的资料办法体 : 办法中真正执行的逻辑代码return :            1. 完结办法            2. 将后果返回给调用者.
  • 定义方法的设计思路
1. 参数            问题: 本人这办法中, 要应用的数据, 是否有灵活性的要求?                需要: 设计一个办法, 打印10次HelloWorld --> 不要                需要: 设计一个办法, 打印n次HelloWorld --> 要参数                需要: 设计一个办法, 求三个小数的最大值 --> 要参数                        问题: 要参数的话, 要几个? 要什么类型的?                需要: 设计一个办法, 求三个小数的最大值                        数量: 3个                        类型: double                        代码: double a, double b, double c                                        需要: 设计一个办法, 从数组中找出最小值                            数量: 1个                        类型: 数组                        代码: int[] arr2. 返回值        步骤1: 先写代码逻辑        步骤2: 察看, 本人这个办法有没有后果产生                            没有后果: void                            public static void print(){                        for(int i = 1; i <= 10; i++){                            System.out.println("HelloWorld");                        }                    }                                        有后果: 通过return语句返回, 并批改返回值类型                                        public static int getMax(int a, int b){                        int c = a > b ? a : b;                        return c;                    }
  • 办法的调用
1. 带返回值的调用        1). 独自调用(不举荐)                        getMax(10,20);        2). 赋值调用(举荐, 灵便)                                int max = getMax(10,20);                                System.out.println(max);                                if(max % 2 == 0){                    ...                }                                for(int i = 1; i <= max; i++){                    ...                }                        3). 输入调用(偶然用)                        System.out.println(getMax(10,20));                2. 不带返回值的        1) 只能独自调用                        print();
  • 应用办法调用示例:

    /*        带返回值办法的调用 :            1. 独自调用(不举荐) : 数据没有接管                    add(10,20);            2. 赋值调用(举荐) : 很灵便                    int result = add(10,20);            3. 输入调用(偶然用)                    System.out.println(add(10, 20));     */    public static void main(String[] args) {        // 生成办法返回值的快捷键        // 办法名().var + 回车        // ctrl + alt + V        int result = add(10, 20);        System.out.println(result);    }    // 需要: 计算两个整数的和    public static int add(int a, int b) {        int c = a + b;        return c;    }

03-办法的常见问题

1. 办法不调用就不执行2. 办法与办法之间是平级关系, 不容许嵌套定义3. 办法的编写程序, 和执行程序无关4. 如果一个办法的返回值类型为void, 示意此办法没有返回值, 能够省略return语句不写        如果非要写的话, 只能写成 return; 5. return语句上面, 不容许写代码, 因为执行不到, 属于有效代码.6. 如果一个办法有具体的返回值(不是void), 肯定要通过return语句带回后果数据, 无论什么状况下        public static int getMax(int a, int b){            if(a > b){                return a;            }else if(b > a){                return b;            }            // 编译谬误: 以后的两个return都被条件所管制, 编译期就认为, 两个条件要都是false, 此办法就没有返回值        }                        public static int getMax(int a, int b){            if(a > b){                return a;            }else if(b > a){                return b;            }else{                return a;            }                    }

04-办法重载 Overload

  • 介绍 : 办法与办法之间的一种关系
  • 指标1 : 可能独立辨认出办法与办法之间是否是正确重载
在同一个类中, 办法名雷同, 参数不同, 与返回值无关    参数不同: 1. 个数不同   2. 类型不同   3. 程序不同
  • 指标2 : 可能了解办法重载带来的益处
不须要记忆过多繁琐的办法名字了假如没有办法重载    printInt(10);    printString("abc");    有办法重载:    println(10);    println("abc");        会依据理论参数的类型, 本人去匹配办法.

05-办法练习

  • 将 test 包中的案例把握
  • 示例:

    public class MethodTest2 {    public static void main(String[] args) {        check(10);        System.out.println("-----------------");        print(20, 80);        System.out.println("-----------------");        printHelloWorld(10);    }    public static void check(int num) {        if (num % 2 == 0) {            System.out.println(num + "是一个偶数");        } else {            System.out.println(num + "是一个奇数");        }    }    public static void printHelloWorld(int n) {   // -1        if (n < 1) {            System.out.println("您传入的数据有误, 请查看");            return;        }        // 代码要是可能走到这里, 代表数据相对是正确的.        for (int i = 1; i <= n; i++) {            System.out.println("HelloWorld");        }    }    public static void print(int start, int end) {        if (start > end) {            System.out.println("您传入的数据有误, 请查看");            return;        }        for (int i = start; i <= end; i++) {            if (i % 2 == 0) {                System.out.println(i);            }        }    }

06-办法的参数传递

  • 办法的参数传递根本数据类型 : 传递的是数据值
  • 办法的参数传递援用数据类型 : 传递的是地址值
  • 示例:

    public class ArgsDemo2 {    /*        问题: Java中到底是值传递, 还是址传递?        答复:                1. 根本数据类型: 传递的是数据值                2. 援用数据类型: 传递的是地址值                值传递, 地址值也是值.     */    public static void main(String[] args) {        int[] arr = {10, 20, 30};        System.out.println("调用change办法前:" + arr[1]);            // 20        change(arr);        System.out.println("调用change办法后:" + arr[1]);            // 200    }    public static void change(int[] arr) {        arr[1] = 200;    }