23.9.22课后作业

发布时间 2023-09-22 16:54:18作者: ZzHhyao

上述示例代码展示了Java的“方法重载(overload)”特性。 满足以下条件的两个或多个方法构成“重载”关系: (1)方法名相同; (2)参数类型不同,参数个数不同,或者是参数类型的顺序不同。

每个递归函数的开头一定是判断递归结束条件是否满足的语句(一般是if语句); 函数体一定至少有一句是“自己调用自己”的。 每个递归函数一定有一个控制递归可以终结的变量(通常是作为函数的参数而存在)。每次自己调用自己时,此变量会变化(一般是变小),并传送给被调用的函数。

import java.util.HashSet

import java.util.Random;
import java.util.Set;

public class RandomNumberGenerator {
private static final int MODULUS = Integer.MAX_VALUE;
private static final int MULTIPLIER = 16807;
private static final int C = 0;

public static Set<Integer> generateRandomNumbers(int count) {
Set<Integer> randomNumbers = new HashSet<>();
int seed = 1;

for (int i = 0; i < count; i++) {
seed = (MULTIPLIER * seed + C) % MODULUS;
randomNumbers.add(seed);
}

return randomNumbers;
}

public static void main(String[] args) {
int count = 1000;
Set<Integer> randomNumbers = generateRandomNumbers(count);

System.out.println("Generated random numbers:");
for (int number : randomNumbers) {
System.out.println(number);
}
}
}

第一个动手动脑,使用了ppt上面的算法生成了1000个随机数。

 

 

 

// MethodOverload.java // Using overloaded methods public class MethodOverload { public static void main(String[] args) { System.out.println("The square of integer 7 is " + square(7)); System.out.println("\nThe square of double 7.5 is " + square(7.5)); } public static int square(int x) { return x * x; } public static double square(double y) { return y * y; } }

 

第二个动手动脑

这段代码展示了方法的重载(Method Overloading)的特性。方法的重载是指在同一个类中定义多个同名但参数列表不同的方法。

在这个示例中,有两个名为square的方法,一个接受一个整数参数,另一个接受一个双精度浮点数参数。这两个方法具有相同的方法名但参数列表不同,这就是方法重载的体现。

当我们调用square方法时,编译器会根据传入的参数类型来确定要调用的具体方法。如果传入一个整数参数,编译器会选择调用接受整数参数的square方法;如果传入一个双精度浮点数参数,编译器会选择调用接受双精度浮点数参数的square方法。

这种方法重载的特性可以提高代码的可读性和灵活性,使得我们可以使用相同的方法名来处理不同类型的输入数据。