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

夜河资源网提供的所有内容仅供学习与交流。通过使用本站内容随之而来的风险以及法律责任与本站无关,所承担的法律责任由使用者承担。
一、如果您发现本站侵害了相关版权,请附上本站侵权链接和您的版权证明一并发送至邮箱:yehes#qq.com(#替换为@)我们将会在五天内处理并断开该文章下载地址。
二、本站所有资源来自互联网整理收集,全部内容采用撰写共用版权协议,要求署名、非商业用途和相同方式共享,如转载请也遵循撰写共用协议。
三、根据署名-非商业性使用-相同方式共享 (by-nc-sa) 许可协议规定,只要他人在以原作品为基础创作的新作品上适用同一类型的许可协议,并且在新作品发布的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与该作品在本网站的原发地址建立链接,他人就可基于非商业目的对原作品重新编排、修改、节选或者本人的作品为基础进行创作和发布。
四、基于原作品创作的所有新作品都要适用同一类型的许可协议,因此适用该项协议, 对任何以他人原作为基础创作的作品自然同样都不得商业性用途。
五、根据二〇〇二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可不经软件著作权人许可,无需向其支付报酬!
六、鉴此,也望大家按此说明转载和分享资源!本站提供的所有信息、教程、软件版权归原公司所有,仅供日常使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!