Java方法中如何区分方法重载与签名相同的方法?

2026-05-24 02:231阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1009个文字,预计阅读时间需要5分钟。

Java方法中如何区分方法重载与签名相同的方法?

目录

一、方法(Method)概念

二、可变参数(Variable)概念

三、方法的参数传递问题

1. 基本数据类型 2. 引用数据类型 3. 方法签名(Method Signature) 4. 方法重载(Overload) 5. 方法

Java方法中如何区分方法重载与签名相同的方法?

目录
  • 一、方法(Method)概念
  • 二、可变参数(Variable)
  • 三、方法的参数传递问题
    • 1. 基本数据类型
    • 2. 引用数据类型
  • 四、方法签名(Method Signature)
    • 五、方法的重载(Overload)

      一、方法(Method)概念

      • 1、Java 中的方法就是其他编程语言中的函数(Function)
      • 2、方法的定义格式:

      • 访问修饰符有4种:public、protected、default、private
      • 返回值类型可能是8大基本数据类型、引用类型或无返回值(void
      • 方法名需符合标识符命名规范、方法名需见名知意、方法名需是小驼峰(类名是大驼峰)
      • 参数列表是该方法需要调用者传入的值(包括参数类型和参数名)
      • 方法体中才可编写 Java 语句(并不是所有花括号中都是方法体:如类定义的花括号中不是方法体)

      下面是方法体代码案例:

      public class MethodBody { // 1.代码块 { System.out.println("是方法体"); } // 2.静态代码块 static { System.out.println("是方法体"); } // 3.方法 public void run(int age) { System.out.println("方法的花括号中是方法体"); // 4.if if (age == 18) { System.out.println("if 语句的花括号中是方法体"); } // 5.for for (int i = 0; i < age; i++) { System.out.println("for 循环的花括号中是方法体"); } // 6.while while (age > 50) { System.out.println("while 循环的花括号中是方法体"); } // 7.switch-case switch (age) { // 错误:在该区域写代码是错误的(该区域不是方法体) // System.out.println(age); // ERROR case 1: { System.out.println("switch 语句的 case 语句块是方法体"); } } // 8.do-while do { System.out.println("do-while 循环的花括号中是方法体"); } while (age < 5); } }

      其实可以理解为只有三个地方是代码块:

      ① 代码块
      ② 静态代码块
      ③ 方法中
      但是,当初老师教的时候把 if、while、for 等也归纳为方法体

      补充:定义方法可能还会有其他修饰符(eg:static、final、abstract),后面还会详细介绍

      仔细看下面的代码, 学会定义方法:

      public class CreateMethodDemo { public static void main(String[] args) { int sum1 = CreateMethodDemo.sumOne2Hundred(1, 100); // sum1 = 5050 System.out.println("sum1 = " + sum1); int sum2 = CreateMethodDemo.sumOne2Hundred(1, 1000); // sum2 = 500500 System.out.println("sum2 = " + sum2); int sum3 = CreateMethodDemo.sumOne2Hundred(1, 10000); // sum3 = 50005000 System.out.println("sum3 = " + sum3); } /** * 计算[start, end]的累加和 * * @param start 起始值 * @param end 结束值 * @return [start, end]的累加和 */ private static int sumOne2Hundred(int start, int end) { int sum = 0; for (int i = start; i <= end; i++) { sum += i; } return sum; } }

      二、可变参数(Variable)

      思考:编写程序计算多个整数的和。eg:计算的和

      public class VariableParameter { public static void main(String[] args) { int[] arr = {2, 5, 6, 7, 66, 53}; VariableParameter vp = new VariableParameter(); // sumByArr = 139 System.out.println(vp.sumByArr(arr)); } /** * 计算多个整数的和(通过数组) * * @param arr (数组中存放需要进行求和的多个整数) * @return 数组中多个整数的和(类型是字符串) */ private String sumByArr(int[] arr) { if (arr == null || arr.length < 1) return "arr 数组为 null, 为数组元素为 0"; int sum = 0; for (int i = 0; i < arr.length; i++) { sum += arr[i]; } return "sumByArr = " + sum; } }

      思路1:

      本文共计1009个文字,预计阅读时间需要5分钟。

      Java方法中如何区分方法重载与签名相同的方法?

      目录

      一、方法(Method)概念

      二、可变参数(Variable)概念

      三、方法的参数传递问题

      1. 基本数据类型 2. 引用数据类型 3. 方法签名(Method Signature) 4. 方法重载(Overload) 5. 方法

      Java方法中如何区分方法重载与签名相同的方法?

      目录
      • 一、方法(Method)概念
      • 二、可变参数(Variable)
      • 三、方法的参数传递问题
        • 1. 基本数据类型
        • 2. 引用数据类型
      • 四、方法签名(Method Signature)
        • 五、方法的重载(Overload)

          一、方法(Method)概念

          • 1、Java 中的方法就是其他编程语言中的函数(Function)
          • 2、方法的定义格式:

          • 访问修饰符有4种:public、protected、default、private
          • 返回值类型可能是8大基本数据类型、引用类型或无返回值(void
          • 方法名需符合标识符命名规范、方法名需见名知意、方法名需是小驼峰(类名是大驼峰)
          • 参数列表是该方法需要调用者传入的值(包括参数类型和参数名)
          • 方法体中才可编写 Java 语句(并不是所有花括号中都是方法体:如类定义的花括号中不是方法体)

          下面是方法体代码案例:

          public class MethodBody { // 1.代码块 { System.out.println("是方法体"); } // 2.静态代码块 static { System.out.println("是方法体"); } // 3.方法 public void run(int age) { System.out.println("方法的花括号中是方法体"); // 4.if if (age == 18) { System.out.println("if 语句的花括号中是方法体"); } // 5.for for (int i = 0; i < age; i++) { System.out.println("for 循环的花括号中是方法体"); } // 6.while while (age > 50) { System.out.println("while 循环的花括号中是方法体"); } // 7.switch-case switch (age) { // 错误:在该区域写代码是错误的(该区域不是方法体) // System.out.println(age); // ERROR case 1: { System.out.println("switch 语句的 case 语句块是方法体"); } } // 8.do-while do { System.out.println("do-while 循环的花括号中是方法体"); } while (age < 5); } }

          其实可以理解为只有三个地方是代码块:

          ① 代码块
          ② 静态代码块
          ③ 方法中
          但是,当初老师教的时候把 if、while、for 等也归纳为方法体

          补充:定义方法可能还会有其他修饰符(eg:static、final、abstract),后面还会详细介绍

          仔细看下面的代码, 学会定义方法:

          public class CreateMethodDemo { public static void main(String[] args) { int sum1 = CreateMethodDemo.sumOne2Hundred(1, 100); // sum1 = 5050 System.out.println("sum1 = " + sum1); int sum2 = CreateMethodDemo.sumOne2Hundred(1, 1000); // sum2 = 500500 System.out.println("sum2 = " + sum2); int sum3 = CreateMethodDemo.sumOne2Hundred(1, 10000); // sum3 = 50005000 System.out.println("sum3 = " + sum3); } /** * 计算[start, end]的累加和 * * @param start 起始值 * @param end 结束值 * @return [start, end]的累加和 */ private static int sumOne2Hundred(int start, int end) { int sum = 0; for (int i = start; i <= end; i++) { sum += i; } return sum; } }

          二、可变参数(Variable)

          思考:编写程序计算多个整数的和。eg:计算的和

          public class VariableParameter { public static void main(String[] args) { int[] arr = {2, 5, 6, 7, 66, 53}; VariableParameter vp = new VariableParameter(); // sumByArr = 139 System.out.println(vp.sumByArr(arr)); } /** * 计算多个整数的和(通过数组) * * @param arr (数组中存放需要进行求和的多个整数) * @return 数组中多个整数的和(类型是字符串) */ private String sumByArr(int[] arr) { if (arr == null || arr.length < 1) return "arr 数组为 null, 为数组元素为 0"; int sum = 0; for (int i = 0; i < arr.length; i++) { sum += arr[i]; } return "sumByArr = " + sum; } }

          思路1: