乐趣区

关于java:JavaSE学习笔记Day05

JavaSEDay05 总结笔记

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[] arr

2. 返回值

        步骤 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();

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);
            printDouble(12.3);
            printString("abc");
            ...
        
有办法重载 : 
            println(10);
            println(12.3);
            println("abc");
            println('a');
            println(false);
    
    会依据理论参数的类型, 本人去匹配办法.
        

05- 办法练习

  • 示例代码:

    public class MethodTest7 {public static void main(String[] args) {int[] arr1 = {11, 22, 33};
    
            int[] maxAndMin = getMaxAndMin(arr1);
    
            System.out.println(maxAndMin[0]);
            System.out.println(maxAndMin[1]);
    
        }
    
        /*
            需要: 设计一个办法, 用于从数组中找最大值和最小值
            留神: return 语句, 只能带回一个后果数据.
    
            问题: 如果我手里有多个后果, 如何同时返回呢?
            答复: 将多个后果, 存入数组, 并返回数组容器
         */
        public static int[] getMaxAndMin(int[] arr) {int max = arr[0];
            for (int i = 1; i < arr.length; i++) {if (arr[i] > max) {max = arr[i];
                }
            }
    
            int min = arr[0];
            for (int i = 1; i < arr.length; i++) {if (arr[i] < min) {min = arr[i];
                }
            }
    
            int[] maxAndMin = {max, min};
    
            return maxAndMin;
        }
    }

06- 办法的参数传递

  • 办法的参数传递根本数据类型 : 传递的是数据值
  • 办法的参数传递援用数据类型 : 传递的是地址值
退出移动版