关于后端:深入理解-Java-方法重载与递归应用

6次阅读

共计 1870 个字符,预计需要花费 5 分钟才能阅读完成。

Java 办法重载

办法重载 容许在同一个类中定义多个具备雷同名称的办法,但 参数列表 必须不同。

语法:

returnType methodName(parameter1, parameter2, ..., parameterN) {// 办法体}

示例:

public class Main {

  // 重载 add 办法,反对 int 和 double 类型参数
  static int add(int x, int y) {return x + y;}

  static double add(double x, double y) {return x + y;}

  public static void main(String[] args) {int sum1 = add(10, 20);
    double sum2 = add(3.14, 1.618);
    System.out.println("int:" + sum1);
    System.out.println("double:" + sum2);
  }
}

输入:

int: 30
double: 4.758

解释:

  • 该示例中定义了两个 add 办法:

    • 一个承受两个 int 型参数并返回 int 型后果。
    • 另一个承受两个 double 型参数并返回 double 型后果。
  • main 办法中,咱们别离调用了两个 add 办法并打印了后果。

重载的益处:

  • 能够使代码更加简洁易读。
  • 能够进步代码的可重用性。

重载的注意事项:

  • 办法的返回值类型能够不同。
  • 办法的拜访权限不能不同。
  • 办法不能申明为 staticfinal

总结

  • 办法重载容许在同一个类中定义多个具备雷同名称的办法,但参数列表必须不同。
  • 重载能够使代码更加简洁易读,进步代码的可重用性。
  • 重载时须要留神返回值类型、拜访权限、static 和 final 修饰符等限度。

Java 递归

递归 是一种让函数调用本身的技术。它提供了一种将简单问题合成为简略问题的办法,这样更容易解决。

了解递归

递归可能有点难以了解。了解它的最好办法是通过试验来理解它是如何工作的。

递归示例

将两个数字相加很容易,但将一系列数字相加更简单。在上面的示例中,应用递归通过将其合成为增加两个数字的简略工作来将一系列数字相加:

public class Main {public static void main(String[] args) {int result = sum(10);
    System.out.println(result);
  }

  public static int sum(int k) {if (k > 0) {return k + sum(k - 1);
    } else {return 0;}
  }
}

示例解释

  • 当调用 sum() 函数时,它将参数 k 增加到所有小于 k 的数字的和并返回后果。
  • k 变为 0 时,函数只返回 0。
  • 运行时,程序依照以下步骤执行:
10 + sum(9)
10 + (9 + sum(8) )
10 + (9 + ( 8 + sum(7) ) )
...
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + sum(0)
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0
  • 因为当 k 为 0 时函数不再调用本身,程序在此进行并返回后果。

进行条件

就像循环可能陷入有限循环问题一样,递归函数可能陷入有限递归问题。有限递归是指函数永远不进行调用本身。每个递归函数都应该有一个 进行条件,即函数进行调用本身的条件。

进行条件示例

在后面的示例中,进行条件是参数 k 变为 0 时。

另一个进行条件示例

在这个例子中,函数将在开始和完结之间的一系列数字相加。这个递归函数的进行条件是当 end 不大于 start 时:

public class Main {public static void main(String[] args) {int result = sum(5, 10);
    System.out.println(result);
  }

  public static int sum(int start, int end) {if (end > start) {return end + sum(start, end - 1);
    } else {return end;}
  }
}

递归的注意事项

  • 开发人员在应用递归时应十分小心,因为很容易陷入编写永远不会终止的函数或应用大量内存或处理器资源的函数。
  • 然而,正确编写时,递归能够是一种十分高效和数学上优雅的编程办法。

递归的利用场景

递归能够用于解决许多不同类型的编程问题,例如:

  • 计算阶乘
  • 计算斐波那契数列
  • 遍历树形构造
  • 解析数学表达式
  • 生成各种图形

学习递归

  • 递归是一个重要的编程概念,学习它能够帮忙你解决更简单的问题。
  • 有许多资源能够帮忙你学习递归,例如书籍、网站和在线教程。
  • 通过练习,你将可能更好天文

最初

为了不便其余设施和平台的小伙伴观看往期文章:

微信公众号搜寻:Let us Coding,关注后即可获取最新文章推送

看完如果感觉有帮忙,欢送 点赞、珍藏、关注

正文完
 0