Java中如何将随机数传入构造方法?3个随机数的传参困惑
嘿,这问题我熟!其实核心思路很简单——先把你用for循环生成的三个随机数存起来,再根据构造方法的参数类型传进去就行。我给你举几个常见语言的例子,你一看就懂:
Java 实现方式
方式1:用List存储随机数,再逐个取出传参
如果你的构造方法是接受三个单独的数值参数(比如public MyClass(int a, int b, int c)),可以先把循环生成的数存到List里,再通过索引取出传入:
import java.util.ArrayList; import java.util.List; import java.util.Random; public class Demo { public static void main(String[] args) { // 用for循环生成3个随机数并存入List List<Integer> randomNums = new ArrayList<>(); Random random = new Random(); for (int i = 0; i < 3; i++) { randomNums.add(random.nextInt(100)); // 生成0-99的随机整数 } // 调用构造方法,传入三个随机数 MyClass myObj = new MyClass(randomNums.get(0), randomNums.get(1), randomNums.get(2)); } } // 自定义类的构造方法 class MyClass { public MyClass(int num1, int num2, int num3) { // 这里处理你的逻辑,比如打印或者存储 System.out.println("收到三个随机数:" + num1 + ", " + num2 + ", " + num3); } }
方式2:用数组存储,直接传数组给构造方法
如果你的构造方法支持接收数组参数(比如public MyClass(int[] nums)),那更省事:
import java.util.Random; public class Demo { public static void main(String[] args) { int[] randomNums = new int[3]; Random random = new Random(); for (int i = 0; i < 3; i++) { randomNums[i] = random.nextInt(100); } // 直接把数组传给构造方法 MyClass myObj = new MyClass(randomNums); } } class MyClass { public MyClass(int[] nums) { System.out.println("收到随机数数组:" + nums[0] + ", " + nums[1] + ", " + nums[2]); } }
Python 实现方式
Python里用列表推导式(本质也是循环)生成随机数后,还能通过解包快速传参,非常方便:
import random class MyClass: def __init__(self, num1, num2, num3): print(f"收到三个随机数:{num1}, {num2}, {num3}") # 用循环生成3个随机数(列表推导式) random_nums = [random.randint(0, 99) for _ in range(3)] # 用*解包列表,直接把三个元素传给构造方法 my_obj = MyClass(*random_nums)
如果你的构造方法支持接收列表,那直接传列表就行:
import random class MyClass: def __init__(self, nums): print(f"收到随机数列表:{nums}") random_nums = [random.randint(0, 99) for _ in range(3)] my_obj = MyClass(random_nums)
总之,不管用哪种语言,核心就是先把循环生成的随机数临时存储起来,再匹配构造方法的参数形式传递。如果构造方法必须要三个单独参数,就把存储的数逐个取出;如果支持集合/数组,直接传集合/数组更高效。
内容的提问来源于stack exchange,提问作者call me AL
相关产品推荐
相关产品推荐

