JAVA有参无参初始化区别,程序举例

本文探讨JAVA中使用有参数和无参数初始化的区别,并通过具体程序实例进行详细解析。
摘要由CSDN通过智能技术生成

JAVA有参无参初始化区别,程序举例

package JAVA_Project_01_02;//建包

//递主要就是处理好入口和出口,入口是最初始的外部对函数调用,出口是对于继续递归也就是继续调用自身的限制条件,
// 内容是对整个过程中单个步骤的一般化的抽象。简单来说就是在一个函数内部调用自身。

import java.math.BigInteger;//导入类
import java.util.ArrayList;

public class TextFactorial {//操作计算阶乘的类
    public static int simpleCircle(int num){//简单的循环计算的阶乘
        int sum=1;
        if (num<0){//判断传入数是否为负数
            throw new IllegalArgumentException("必须为正整数!");//抛出不合理参数异常
        }
        for (int i=1;i<=num;i++){//循环num
            sum*=i;//每循环一次进行乘法运算
        }
        return  sum;//返回阶乘的值
    }
    public static int recursion(int num){//利用递归计算阶乘
        int sum=1;
        if (num<0)
            throw new IllegalArgumentException("必须为正整数!");//抛出不合理参数异常
        if (num==1){
            return 1;//根据条件,跳出循环
        }else {
            sum=num*recursion(num-1);//运用递归计算
            return sum;
        }
    }
    public static long addArray(int num){//数组添加计算阶乘
        long[] arr=new  long[21];//创建数组
        arr[0]=1;
        int last=0;
        if (num>=arr.length){
            throw new IllegalArgumentException("传入的值太大");//抛出传入的数太大异常
        }
        if (num<0)
            throw new IllegalArgumentException("必须为正整数!");//抛出不合理参数异常
        //建立满足小于传入数的while循环
        while (last<num){
            arr[last+1]=arr[last]*(last+1);//进行运算
            //last先进行运算,再将last的值加1
            last++;
        }
        return  arr[num];
    }
    public static synchronized BigInteger bigNumber(int num){
        //利用BigInteger类计算阶乘
        ArrayList list=new ArrayList();//创建集合数组
        list.add(BigInteger.valueOf(1));//在往数组里添加一个值
        for (int i=list.size();i<=num;i++){
            BigInteger lastfact=(BigInteger)list.get(i-1);//获得第一个元素
            BigInteger nextfact=lastfact.multiply(BigInteger.valueOf(i));
            //获得下一个数组
            list.add(nextfact);
        }
        return(BigInteger)list.get(num);//返回数组中下标为num的值
    }

    public static void main(String[] args) {//java程序的主入口处
        int num=5;
        int num1=23;
        System.out.println("简单的循环计算"+num+"的阶乘为"+simpleCircle(num));//调用程序simpleCircle(num)
        System.out.println("利用递归计算"+num+"的阶乘为"+recursion(num));//调用程序recursion(num)
        System.out.println("数组添加计算"+num+"的阶乘为"+addArray(num));//调用程序addArray(num)
        System.out.println("利用BigInteger类计算"+num1+"的阶乘为"+bigNumber(num1));//调用程序bigNumber(num1)
    }
}
/*
(1)本实例程序创建两个ArrayList类实例,第一个ArrayList类实例使用默认无参数的构造函数创建,
通过调用Add方法初始化数据;第二个ArrayList类实例使用一个指定元素数组创建,在创建的同时初始化数据。
这两种方法所创建Arraylist类初始化容量不同的。
(2)本实例程序所创建的第一个ArrayList类实例,所有的元素都是string数据类型,在遍历该集合的元素时,
可以指定遍历对象的数据类型为String,第二个ArrayList类实例的元素不止一种数据类型,
此时应指定遍历对象的数据类型为object.
(3)为说明两种初始话方式的区别,本实例化程序未压缩Arraylist类实例的容量,
在实际编程中可以使用TrimToSize方法压缩ArrayList类实例的容量。
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值