方法名相同时,形参的不同数据类型具体调用顺序:调用方法名时,遇到整数、小数、等调用顺序解析。

方法名相同时,形参的不同数据类型具体调用顺序:

调用方法名时,遇到整数、小数、等调用顺序解析。

通过具体代码测试得出结果如下

 - 整数调用顺序是先int->long->float->double->Integer   
 - 小数调用顺序是先double->Double
 - 布尔调用顺序是先boolean->Boolean
 - 其他都是基本类型->包装类型,可测试一下。

总结:
方法名相同的前提下:

  • 传入整数:默认调用int类型,然后调用,参数类型是可以隐式转换为int类型l的ong,float,double类型的方法,最后调用的是,参数类型为int的自动装箱类型:Integer的方法
  • 传入小数:默认调用double类型,然后调用,参数类型Double类型的方法
  • 传入布尔:默认调用boolean类型,然后调用,参数类型Boolean类型的方法

测试代码:如下

import org.junit.Test;

public class sum {
	//byte类型的形参方法
    public static void doSum(byte x){
        System.out.println("byte");
    }
    //Byte类型的形参方法
    public static void doSum(Byte x){
        System.out.println("Byte");
    }
    //short 类型的形参方法
    public static void doSum(short x){
        System.out.println("short");
    }
   //Short 类型的形参方法
    public static void doSum(Short x){
        System.out.println("Short");
    }
    //char 类型的形参方法
    public static void doSum(char x ){
        System.out.println("char");
    }
    //Character类型的形参方法
    public static void doSum(Character x ){
        System.out.println("Character");
    }
    //int 类型的形参方法
    public static void doSum(int x){
        System.out.println("int");
    }
    //Integer 类型的形参方法
    public static void doSum(Integer x){
        System.out.println("Integer");
    }
    //long 类型的形参方法
    public static void doSum(long x){
        System.out.println("long");
    }
    //Long 类型的形参方法
    public static void doSum(Long x){
        System.out.println("Long");
    }
    //float 类型的形参方法
    public static void doSum(float x){
        System.out.println("float");
    }
    //Float 类型的形参方法
    public static void doSum(Float x){
        System.out.println("Float");
    }
    //double 类型的形参方法
    public static void doSum(double x){
        System.out.println("double");
    }
    //Double 类型的形参方法
    public static void doSum(Double x){
        System.out.println("Double");
    }
    //boolean 类型的形参方法
    public static void doSum(boolean b){
        System.out.println("boolean");
    }
   //Boolean 类型的形参方法
    public static void doSum(Boolean b){
        System.out.println("Boolean");
    }
    @Test
    public void test(){
        System.out.println("----------测试区域前------------");
        doSum(1);//有int类型时,默认调用带有int类型的方法,其次是long,float,double,Integer。
        doSum(1.0);//有double类型时,默认调用带有double类型的方法,其次是float,在其次才是Double。
        doSum(ture);//有boolean类型时,默认调用boolean类型的方法,其次是Boolean。
        System.out.println("-----------测试区域后-----------");
       doSum((byte)1);//要调用byte类型的方法时,必须要强转
       doSum(Byte.valueOf((byte)1));//调用Btye
       doSum((short)1);//要调用short类型的方法时,必须要强转
       doSum(Short.valueOf((short)1));;//调用Short
       doSum((char)1);//要调用char类型的方法时,必须要强转
       doSum(Character.valueOf((char)1));//调用Character
       doSum(1);//喜欢的Int类型,默认调用int。
       doSum(Integer.valueOf(1));//调用Interger
       doSum(1l);//数值后面直接加个l,可直接调用long类型
       doSum(1L);//数值后面直接加个L,直接调用long类型
       doSum(Long.valueOf(1l));//调用Long
       doSum(Long.valueOf(1L));//调用Long
       doSum(1f);//数值后面直接加个f,可直接调用float类型
       doSum(1F);//数值后面直接加个F,可直接调用float类型
       doSum(Float.valueOf(1f));//调用Float
       doSum(Float.valueOf(1F));//调用Float
       doSum(1d);//数值后面直接加个d,可直接调用double类型
       doSum(1D);//数值后面直接加个D,可直接调用double类型
       doSum(Double.valueOf(1d));//调用Double
       doSum(Double.valueOf(1D));//调用Double
       doSum(1.0);//小数类型默认调用double类型。
       doSum(Double.valueOf(1.0));//调用Double
       doSum(1.0f);//调用float
       doSum(1.0F);//调用float
       doSum(Float.valueOf(1.0f));//调用Float
       doSum(Float.valueOf(1.0F));//调用Float
       doSum(true);//默认调用boolean类型
       doSum(Boolean.valueOf(true));//调用Boolean
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值