Java方法

2019-08-06  本文已影响0人  以宇宙为海的蓝鲸

方法介绍?

Java调用方法流程.png

方法重载

代码示例

public class Demo07{    
    public static void main(String[] args){        
        char ch = 'A';        info(ch);            
    }           
    public static void info(char ch){        
        System.out.println("info char");    
    }   
    public static void info(int ch){        
        System.out.println("info int");    
    }    
    public static void info(long ch){        
        System.out.println("info long");    
    }   
    public static void info(double ch){        
        System.out.println("info double");    
    }
}
//执行完全匹配的,结果输出info char
public class Demo08{    
    public static void main(String[] args){        
        info(12,12.1f);            
    }         
     public static void info(char ch,double d){        
        System.out.println("info char ch,double d");    
    }    
    public static void info(int ch,double d){
        System.out.println("int ch,double d");    
    }    
    public static void info(long ch,float d){        
        System.out.println("long ch,float d");    
    }     
}
//程序报错,因为存在两个可以调用的方法
public class Demo06{    
    public static void main(String[] args){        
        info(12);            
    }       
    public static void info(long l){  //基本数据类型,编号1      
        System.out.println("info long l");    
    }  
    public static void info(Integer in){  //基本数据类型的包装类,编号2      
        System.out.println("Integer in");    
    }   
    /* jdk1.5之后,支持可变参数  */    
    public static void info(int ... ins){ //可变参数,编号3   
        System.out.println("Integer ... ins");    
    } 
}
//当编号1,2,3都存在时,执行,编号1;当只有编号2,3时,执行编号2;只存在编号3时,执行编号3.

递归

一种编程技巧,在程序中方法自己调用自己。

优势:更快写出代码,复杂度低。

劣势:消耗内存大。

注意:可以使用递归的一定可以使用循环,使用循环的不一定可以使用递归。

使用场景:算法,数据结构。

尾递归:做到栈帧复用的递归。

经典案例:斐波那契数列(尾递归)

package com.mage.var;

public class Test01{
    public static void main(String[] args){
        int num = 4;
        long result = method(num,1,1);
        System.out.println("第"+num+"项斐波那契数列是"+result);
    }
    public static long method(long num,long ret1,long ret2 ) {
        if(num==1) {
            return ret1;
        }else {
            return method(num-1,ret2,ret1+ret2);
        }
    }
}
//结果为:第4项斐波那契数列是3
上一篇 下一篇

猜你喜欢

热点阅读