04 方法、方法调用、方法重载

Java基础语法之方法

一、方法定义的格式

修饰符 返回值类型 方法名称(参数类型 参数名称,...){
    方法体
    return 返回值;
}
  • return的两个作用:
    • 停止当前方法
    • 将后面的结果数据返回值还给调用处
  • 注意:
    • return后面的返回值,必须与方法名称前面的返回值类型保持对应。

二、方法的三种调用格式

1. 单独调用

//格式:方法名称(参数);
public class DemoMethodDefine {
    public static void main(String[] args) {
        //单独调用
        sum(10,20);
    }

    public static int sum(int a, int b){
        System.out.println("我要执行了!");
        int result = a + b;
        return result;
    }
}

2. 打印调用

//格式:System.out.println(方法名称(参数));
public class DemoMethodDefine {
    public static void main(String[] args) {
        //单独调用
        //sum(10,20);

        //打印调用
        System.out.println(sum(10,20));
    }

    public static int sum(int a, int b){
        System.out.println("我要执行了!");
        int result = a + b;
        return result;
    }
}

3. 赋值调用

//格式:数据类型 变量名称 = 方法名称(参数);
public class DemoMethodDefine {
    public static void main(String[] args) {
        //单独调用
        //sum(10,20);

        //打印调用
        //System.out.println(sum(10,20));

        //赋值调用
        int sumnumber = sum(10,20);
        System.out.println(sumnumber);
    }

    public static int sum(int a, int b){
        System.out.println("我要执行了!");
        int result = a + b;
        return result;
    }
}

4.注意

  • 返回值类型为void时,这种方法只能够单独调用。

三、方法的调用流程图解

四、对比有参数和无参数

  • **有参数:**当一个方法需要一些数据条件,才能完成任务的时候,就是有参数。
  • **无参数:**一个方法不需要任何数据条件,自己就像能独立完成任务,就是无参数。

五、对比有返回值和无返回值

  • 注意:
    • 对于有返回值的方法,可以单独调用、打印调用或者赋值调用。
    • 对于无返回值的方法,只能使用单独调用。

六、方法的简单练习

  • 判断两数字是否相同

    //法一:
    public class SameNums {
        public static void main(String[] args) {
            sameNums(10,10); //相同
            sameNums(10,20);//不相同
        }
        
        public static void sameNums(int a, int b){
            if(a == b){
                System.out.println("相同");
            }else{
                System.out.println("不相同");
            }
        }
    }
    
    //法二:
    public class SameNums {
        public static void main(String[] args) {
            System.out.println(sameNums(10,20));
        }
        
        public static boolean sameNums(int a, int b){
            return a == b;
        }    
    }
    
  • 求出1到100的累加和

    public class Sum100 {
        public static void main(String[] args) {
            System.out.println(sum1To100()); // 5050
        }
    
        public static int sum1To100(){
            int result = 0;
            for (int i = 1; i <= 100; i++) {
                result += i;
            }
            return result;
        }
    }
    
  • 打印指定次数的HelloWorld!

    public class PrintHelloWorld {
        public static void main(String[] args) {
            printHelloWorld(10);
            printHelloWorld(20);
        }
    
        public static void printHelloWorld(int count){
            for (int i = 0; i < count; i++) {
                System.out.println("HelloWorld!" + i);
            }
        }
    }
    

七、方法的注意事项

  • 方法应该定义在类当中,但是不能在方法当中在定义方法,不能嵌套。

  • 方法定义的前后顺序无所谓。

  • 方法定义之后不会执行,一定要调用:单独调用、打印调用、赋值调用。

  • 如果方法有返回值,那么必须写上return 返回值;,不能没有。

  • return后面的返回值数据,必须和方法的返回值类型对应起来。

  • 对于一个void方法,不能写return后面的返回值,只能写自己。

    public static void method(){
        return 10;//错误
        return; //正确
    }
    
  • 对于void方法当中最后一行的return可以不写。

  • 一个方法中可以有多个return语句,但是必须保证同时只有一个会被执行到,两个return不能连写。

八、方法重载的基本使用

  • **方法的重载(Overload):**多个方法的名称一样,但是参数列表不一样。

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

    public class MethodOverload {
        public static void main(String[] args) {
            System.out.println(sum(10,20));
            System.out.println(sum(10,20,30));
            System.out.println(sum(10,20,30,40));
            System.out.println(sum(10,20,30,40,50));
        }
    
        public static int sum(int a, int b){
            return a + b;
        }
        public static int sum(int a, int b, int c){
            return a + b + c;
        }
        public static int sum(int a, int b, int c, int d){
            return a + b + c + d;
        }
        public static int sum(int a, int b, int c, int d,int e){
            return a + b + c + d + e;
        }
    }
    

九、方法重载的注意事项

  • 方法重载与下列因素有关:

    • 参数个数不同

      public static int sum(int a, int b){
          return a + b;
      }
      public static int sum(int a, int b, int c){
          return a + b + c;
      }
      
    • 参数类型不同

      public static int sum(int a, int b){
          return a + b;
      }
      public static int sum(double a, double b){
          return (int)(a + b);
      }
      
    • 参数的多类型顺序不同

      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 int sum(int x, int y){
          return x + y;
      }
      
    • 与方法的返回值类型无关

      public static int sum(int a, int b){
          return a + b;
      }
      //错误!与返回值类型无关。  例如:单独调用sum(10,20);造成歧义。
      public static double sum(int a, int b){
          return a + b;
      }
      

十、重载的简单练习题

  • 四种不同参数类型的方法

    /*
    题目要求:
    比较两个数据是否相等。
    参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型,并在main方法中进行测试
    */
    public class MethodOverloadPractice {
        public static void main(String[] args) {
            byte b1=10, b2=10;
            short s1=10, s2=10;
            int i1=10, i2=10;
            long l1=10L, l2=10L;
            System.out.println(isSame(b1,b2));
            System.out.println(isSame(s1,s2));
            System.out.println(isSame(i1,i2));
            System.out.println(isSame(l1,l2));
        }
        
        public static boolean isSame(byte a, byte b){
            System.out.println("compare byte");
            return a == b;
        }
        public static boolean isSame(short a, short b){
            System.out.println("compare short");
            return a == b;
        }
        public static boolean isSame(int a, int b){
            System.out.println("compare int");
            return a == b;
        }
        public static boolean isSame(long a, long b){
            System.out.println("compare long");
            return a == b;
        }
    }
    
  • 判断方法的正确重载

    public static void open(){} //正确重载
    public static void open(int a){} //正确重载
    static void open(int a,int b){}  //错误,与第八行冲突
    public static void open(double a,int b){} //正确重载
    public static void open(int a,double b){} //错误,与第六行冲突
    public void open(int i,double d){} //错误,与第五行冲突
    public static void OPEN(){} //正确,但不是有效重载
    public static void open(int i,int j){} //错误,与第三行冲突
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值