文档:
https://files.cnblogs.com/files/blogs/847696/动手动脑2.zip?t=1759839965&download=true
1.生成随机数
import java.util.Arrays;
public class RandomGenerator {
public static void main(String[] args) {
// 示例:生成1000个随机整数
int[] randomNumbers = generateRandomNumbers(1000, 42);
System.out.println("生成的随机数示例:" + Arrays.toString(Arrays.copyOf(randomNumbers, 10)));
}
public static int[] generateRandomNumbers(int count, long seed) {
final long a = 1664525L;
final long c = 1013904223L;
final long m = (1L << 32); // 2^32
int[] result = new int[count];
long current = seed;
for (int i = 0; i < count; i++) {
// 应用LCG公式:X_{n+1} = (a * X_n + c) mod m
current = (a * current + c) % m;
// 将结果转换为32位有符号整数
result[i] = (int) current;
}
return result;
}
}
2.方法重载
代码演示图展示了Java中的方法重载(Method Overloading)。特殊之处在于,MethodOverload类中定义了两个同名方法 square,但它们的参数类型不同:一个接受 int参数,另一个接受 double参数。在 main方法中调用 square时,根据传入的实际参数类型(整数 7 或浮点数 7.5),Java 会自动选择匹配的方法版本执行。
方法重载的核心:允许在同一个类中使用相同的方法名,但参数列表必须不同(如类型、数量或顺序)。这提高了代码的灵活性和可读性。
代码执行过程:当调用 square(7)时,使用 square(int x)方法,返回 49;调用 square(7.5)时,使用 square(double y)方法,返回 56.25。输出结果会显示两者的平方值。
意义:方法重载是面向对象编程的常见特性,避免了为相似功能起不同方法名的冗余。在这个例子中,它统一了处理整数和浮点数平方的逻辑。