JAVA学习笔记(十二)

方法重载的基本使用

对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦。 方法的重载(Overload):多个方法的名称一样,但是参数列表不一样。

好处:只需要记住唯一一个方法名称,就可以实现类似的多个功能。

 

方法重载的注意事项

方法重载与下列因素相关: 1.参数个数不同

2.参数类型不同 3.参数的多类型顺序不同

 public class Demo01MethodOverload{
     public static void main(String[] args){
         /*System.out.println(sumTwo(10,20));// 30
         System.out.println(sumThree(10,20,30));// 60
         System.out.println(sumFour(10,20,30,40));// 100
         */
         System.out.println(sum(a:10,b:20));//两个参数的方法
         System.out.println(sum(a:10,b:20,c:30));//三个参数的方法
         System.out.println(sum(a:10,b:20,c:30,d:40));//四个参数的方法
 //        System.out.println(sum(10,20,30,40,50));//找不到任何方法来匹配,所以错误!
     }
 ​
         public static int sum(int a, int b) {
             System.out.println("有2个参数的方法执行!") ;
             return a + b;
         }
 ​
         public static int sum(int a, int b, int c) {
             System.out.println("有3个参数的方法执行!");
             return a+b+c;
         }
         
         public static int sum(int a, int b, int c, int d) {
             System.out.println("有4个参数的方法执行!"); 
             return a+b+c+d;
         }
     }
 }

方法重载与下列因素无关

1.与参数的名称无关 2.与方法的返回值类型无关

 public class Demo01MethodOverload{
     public static void main(String[] args){
         System.out.println(sum(a:10,b:20));//两个参数的方法
         System.out.println(sum(a:10,b:20,c:30));//三个参数的方法
         System.out.println(sum(a:10,b:20,c:30,d:40));//四个参数的方法
     }
     
     public static int sum(int a, double b) {
         return(int) (a + b);
     }
     public static int sum(double a, int b) {
         return(int) (a + b);
     }
 ​
     public static int sum(int a, int b) {
         return a + b;
     }
     
     //错误写法!与方法的返回值类型无关
 //    public static double sum(int a, int b){
 //    return a + b+0.0; 
 //    }
     //错误写法!与参数的名称无关
 //    public static int sum(intxinty){ 
 //    return x+y;
 //    }
     
     public static int sum(double a, double b){
         return(int)(a+b);
     }
 }
     

重载练习1_四种不同参数类型的方法

题目要求: 比较两个数据是否相等。 参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型并在main方法中进行测试。

 public class Demo02MethodOverloadSame{
     public static void main(String[] args){
         byte a =10; 
         byte b =20;
         System.out.println(isSame(a,b));
         
         System.out.println(isSame((short) 20,(short) 20));
 ​
         System.out.println(isSame(a:11,b:12));
 ​
         System.out.println(isSame(a:10L,b:10L));
     }
     
     public static boolean isSame(byte a, byte b) {
         boolean same; if(a == b) {
             same =true;
         } else {
             same =false;
         }
         return same;
     }
     
     public static boolean isSame(short a, short b){
         boolean same = a == b ? true : false; 
         return same;
     }
 ​
     public static boolean isSame(int a, int b){
         return a == b;
     }
 ​
     public static boolean isSame(long a, long b) {
         if (a == b) {
             return true;
         } else {
             return false;
         }
     }
 }

重载练习2_判断方法的正确重载

 package cn.itcast.day04.demo04;
 public class Demo030verloadJudge{
     public static void open(){} // 正确重载
     public static void open(int a){} // 正确重载
     static void open(int a,int b){}//代码错误:和第8行冲突 
     public static void open(double a,int b){} // 正确重载
     public static void open(intadoubleb){}//代码错误:和第6行冲突 
     public void open(int idoubled){}//代码错误:和第5行冲突
     public static void OPEN((){}//代码正确不会报错,但是并不是有效重载 
     public static void open(inti inti){} //代码错误:和第3行冲突
 }

重载练习3_实现重载的println方法

在调用输出语句的时候,println方法其实就是进行了多种数据类型的重载形式。

 public class Demo040verloadPrint {
     public static void main(String[] args){
         myPrint(num:100);// int
         myPrint(str:"Hello");// string
     }
 ​
     public static void myPrint(bytenum){
         System.out.println(num);
     }
 ​
     public static void myPrint(short num){
         System.out.println(num);
     }
 ​
     public static void myPrint(int num) {
         System.out.println(num);
     }
 ​
     public static void myPrint(long num) {
         System.out.println(num);
     }
 ​
     public static void myPrint(float num){
         System.out.println(num);
     }
 ​
     public static void myPrint(double num){
         System.out.println(num);
     }
 ​
     public static void myPrint(char num {
         System.out.println(num);
     }
                                
     public static void myPrint(boolean is) {
         System.out.println(is);
     }
                                
     public static void myPrint(String str){
         System.out.println(str);
     }
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值