方法调用与重载

 

方法的定义

  • Java方法类似其他语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语句:

    • 方法包含一个方法头和一个方法体。下面是一个方法的所有成分:

      • 修饰符:是可选的,告诉编辑器如何调用该方法,定义了该方法的访问类型。

      • 返回值类型:方法可能会返回值,return ValueType是关键字void;

      • 方法名:是方法的实际名称,方法名和参数表共同构成方法签名;

      • 参数类型:参数像是一个占位符,当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。

        • 形式参数:在方法被调用时用于接受外界输入的数据

        •   
          //形式参数:用来定义作用的
             public static int add(int a, int b) {
                 return a + b;
            }

           

        • 实参:调用方法时实际传给方法的数据

        •   
          //实际参数:实际调用传递给他的参数
                 int sum = add(1, 2);
                 System.out.println(sum);

           

      • 方法体:方法体包含具体的语句,定义该方法的功能。

      • 格式:

          
        修饰符 返回值类型 方法名(参数类型 参数名){
         ···
           方法体
         ···
         return 返回值;
        }

         

  
package method;

/**
* @author IT_Jay
* @date 2022/1/5 9:38 AM
*/
public class Demo02 {
   public static void main(String[] args) {
       int result = max(2,4);
       System.out.println(result);
       System.out.println(max(4,4));
  }

   //比大小
   public static int max(int num1,int num2){
       int result ;
       if (num1 > num2){
           result = num1;
      }else {result = num2;}
       if (num1==num2){
           System.out.println("num1==num2");
           return 0;       //终止方法
      }

       return result;
  }
}

方法调用

  • 调用方法:对象名.方法名(实参列表)

  • java支持两种方式调用方法,根据方法是否支持返回值来选择

  • 当方法返回一个值的时候,方法调用通常被当作一个值,如:

    • int large = max(30,40);

    • 如果方法返回值是void,方法调用一定是一条语句。

      • System.out.println("Hello world");

      • 了解:值传递(java)和引用传递

         

        方法的重载

        • 方法重载就是在一个类中,有相同的函数名称,但形式参数不同的函数

        • 方法的重载的规则:

          • 方法名必须相同

          • 参数列表必须不同

          • 方法返回类型可以相同也可以不同

          • 仅仅返回类型不同不足以成为方法的重载

            •   
              public static double max(double num1,double num2){}
              public static int max(int num1,int num2){}
        • 实现理论

          • 方法名称相同时,编译器会根据调用方法的参数个数,参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器会报错。

          package method;

        /**
        * @author IT_Jay
        * @date 2022/1/5 9:38 AM
        */
        public class Demo02 {
           public static void main(String[] args) {
               int result = max(2,4);
               System.out.println(result);
               System.out.println(max(4,4));
               System.out.println(max(9.9,9.9));
               System.out.println(max(3,3,3));
          }

           //比大小 int
           public static int max(int num1,int num2){
               int result ;
               if (num1 > num2){
                   result = num1;
              }else {result = num2;}
               if (num1==num2){
                   System.out.println("num1==num2");
                   return 0;       //终止方法
              }

               return result;
          }
           //比大小 double
        //   public static double max(double num1,double num2){
        //       double result ;
        //       if (num1 > num2){
        //           result = num1;
        //       }else {result = num2;}
        //       if (num1==num2){
        //           System.out.println("num1==num2");
        //           return 0;       //终止方法
        //       }
        //
        //       return result;
        //   }

           //转型 和上面注释部分只能同时写一个
           public static int max(double num1,double num2){
               int result=0 ;
               if (num1 > num2){
                   result = (int)num1;
              }else {
                   result = (int)num2;
              }
               if (num1==num2){
                   System.out.println("num1==num2");
                   return 0;       //终止方法
              }

               return result;
          }

           //三个
           public static int max(int num1,int num2, int num3){
               int result = 0;
               if (num1 > num2 && num1>num3){
                   result = num1;
              }else if(num2>num1 && num2>num3){
                   result = num2;
              }else if (num3>num1 && num3>num2){
                   result=num3;
              }
               else{
                   System.out.println("num1==num2==num3");
                   return 0;       //终止方法
              }

               return result;
          }
        }

         

 

 

posted @   作困兽之斗  阅读(201)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示