Java学习(五)方法重载-overload

缪金谷 75 0

Java学习(五)方法重载-overload

概念

在Java中,一个类中的多个方法可以有相同的名字,不同的参数列表,这样的一组方法构成了方法重载。经过重载的方法可以有不同的参数个数、参数的类型、参数的顺序。

public class Test {
   //一个普通的方法
   public void testFun(){
       System.out.println("这是一个没有参数的方法");
   }
   //经过重载后可以传入整数的方法
   public void testFun(int x){
       System.out.println("这是整数"+x);
   }
   //经过重载后可以传入字符串的方法
   public void testFun(String x){
       System.out.println("这是字符串"+x);
   }
   //经过重载后可以传入数组的方法
   public void testFun(int[] x){
       System.out.println("这是数组");
   }

   public static void main (String[] args){
       Test fun = new Test();
       //无参数执行匹配无参数的方法
       fun.testFun();
       //传入整数类型的方法会匹配传递参数为int类型的方法
       fun.testFun(1);
       //传入字符串类型的方法会匹配传递参数为String类型的方法
       fun.testFun("字符串");
       //传入数组类型的方法会匹配传递参数为int[]类型的方法
       int[] arr={1,2,3};
       fun.testFun(arr);
   }
}

执行结果:

这是一个没有参数的方法

这是整数1

这是字符串字符串

这是数组


定位方法

系统在调用方法的时候,首先通过方法的名字来定位方法;

如果有方法名字一样的(经过重载),系统会通过参数的数据类型定位方法(如上述程序);

如果没有与之传递参数类型一致的方法,系统会自动找一个可以进行转换的参数类型进行转换(如下)。

//使用上面例子的类
public static void main (String[] args){
   Test fun = new Test();
   //传入一个char类型的a,由于上面的方法中没有char类型参数的方法,系统会自动转换成已有的int类型的方法所需要的参数,简而言之,char类型的a会被转换成int类型的97
   fun.testFun('a');
   //我们也可以自己强制转换数据类型,如下
   fun.testFun(int('a'))
}

执行结果:

这是整数97

这是整数97



目录导航
  • Java学习(五)方法重载-overload
      • 概念
      • 定位方法
  • 发表评论 (已有0条评论)

    还木有评论哦,快来抢沙发吧~