Java方法笔记整理

方法的定义

  • 是用一段用来完成特定功能的代码片段

  • Java都是值传递

方法的重载

  • 定义:重载就是在一个类中,有相同的函数名称,但形参不同的函数

  • 方法重载的规则:

    • 方法名称必须相同

    • 参数列表必须不同(个数不同、或类型不同、参数拍列顺序不同)

    • 方法的返回类型可以相同也可以不同

    • 仅仅返回类型不同不足以成为方法的重载

  • 实现理论:

    • 方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去匹配,如果没有匹配到,则报错。

    package com.chen.scanner;

    public class Demo12 {

       public static int add(int a,int b){
           return a+b;
      }
       public static int add(int a,int b,int c){
           return a+b+c;
      }
       public static double add(int a,int b,double c){
           return  a+b+c;
      }
       public static double add(int a,double c, int b){
           return  a+b+c;
      }
       public static void main(String[] args) {
           int add = Demo12.add(1, 2, 3);
           System.out.println(add);
      }
    }

可变参数

  • 在方法声明中,在制定参数类型后面加上一个省略号(...)

  • 一个方法中只能指定一个可变参数,他必须是方法的最后一个参数,任何普通的参数必须在它之前声明

    package com.chen.scanner;

    public class Demo13 {
       //可变参数b
       public void add(int...b){
           int sum=0;
           for (int i = 0; i < b.length; i++) {
                 sum+=b[i];
          }
           System.out.println(sum);
      }
       public static void main(String[] args) {
           Demo13 demo13 = new Demo13();
           demo13.add(1,2,3);

      }
    }

递归

  • 定义:A方法调用A方法,自己调用自己

  • 递归包含两个部分:

    • 递归头:什么时候不调用自身方法,如果没有头,将陷入死循环

    • 递归体:什么时候调用自身方法

  • 注意点:递归适用于基数比较小的,如果基数大会占用很大内存,导致内存崩溃,因为递归多的话,就会无限进栈

    package com.chen.scanner;

    public class Demo14 {
       //计算5!
       public static void main(String[] args) {
           System.out.println(fn(5));
      }

       public static int fn(int a) {
           int result = 0;
           if (a==1){
               return 1;
          }else {
               result = a * fn(a-1);
               return result;
          }
      }
    }
posted @ 2020-04-01 20:47  Crazylearningjava  阅读(635)  评论(0)    收藏  举报