栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java7

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java7

方法的重载

定义:当方法名称相同,参数的类型或个数不同时就称为方法重载。
通过程序分析,定义一个加法处理方法,该方法可以接受两个int变量,三个int变量,两个double变量的加法处理 采用加法重载。

public class JvaDemo{
   public static void main(String args []){
      int resultA = sum(10,20);//调用两个int参数的方法
      int resultB = sum(10,20,30);//调用三个int参数的方法
      double resultC = sum(10.2.20.3);
      System.out.println("加法执行结果:"+ resultA);
      System.out.println("加法执行结果:"+ resultB);
      System.out.println("加法执行结果:"+ resultC);
   }
   public static int sum(int x,int y){
      return x + y;
     }
     public static int sum(int x,int y,int z){
       return x + y + z;
     }
     public static double sum(double x, double y){
        return x + y;
     }
  }
  

这个时候可以发现同一个方法名称可以根据调用时传递的不同参数的类型或个数实现不同方法体的调用,就实现了方法重载的定义。
方法重载跟返回值的类型没有任何关系,它只跟参数有关系。但是在实际的开发中,请掌握一个基本的开发原则:只要是方法重载强烈建议其返回值类型相同。
观察一个代码:

public class JvaDemo{
   public static void main(String args []){
      System.out.println(1);
      System.out.println(1.1);
      System.out.println(true);
      System.out.println('A');
      System.out.println("HelloWorld");
     }
  }
  

可以发现,所有的输出操作支持有各种数据类型,所以System.out.println()本身就属于一个方法重载。

方法的递归调用(了解)

定义:指的是一个方法自己调用自己的情况。利用递归调用可以解决一些重复麻烦的问题。在进行方法递归调用时注意几个问题:

  1. 一定要设置方法递归调用的结束条件;
  2. 每一次调用过程之中一定要修改传递的参数条件。
 public class JvaDemo{
   public static void main(String args []){
     int sum = 0;
     int x = 1;
     while(x <= 100){//循环的结束条件
     sum += x;
     x ++;//修改每一次循环的变量
     }
     System.out.println(sum);
  }
public class JvaDemo{
   public static void main(String args []){
      System.out.println(sum(100));
     }
     public static int sum(int sum){//执行累加
         if (num == 1){//不累加
         }
         return num + sum(num - 1);//递归调用
  }

代码分析处理:

  • 【第1次执行sum(),主方法执行】return 100 + sum (99);
  • 【第2次执行sum(),sum()递归调用】return 99 + sum(98);
  • 【第99次执行sum(),sum()递归调用】return 2 + sum(1);
  • 【第100次执行sum(),sum()递归调用】return 1 ;
    整体形式:return 100 + 99 + 98 + …+ 2 + 1;
    递归操作虽然可以简化调用,但是在写代码时很少有递归的情况,大部分情况下只有简单的逻辑处理,递归少用还有一个原因:可能会造成栈溢出。

计算“1! + 2!+ 3!+ 4!+ 5!+…+ 90!”
在进行阶乘计算的时候,必须考虑数据类型,肯定不能使用int或long,只能够使用double。

public class JvaDemo{
   public static void main(String args []){
      System.out.println(fan(90));
     }
     public static double sum(int num){
        if (num == 1){
            return 1;
          }
        return fan(num) + sum(num - 1);
        }
     public static double fan(int num){//执行累加
         if (num == 1){//不累加
         return 1;
         }
         return num + fan(num - 1);//递归调用
      }
  }

实际上都是可以用循环来完成的,但是如果使用递归要比循环结构看起来更加清晰一些。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/338110.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号