在本次的Java课程学习中,我通过一系列动手动脑问题和课堂测试,深入理解了Java编程的核心概念。本文将系统整理这些学习内容,分享我的学习心得和代码实现。
动手动脑问题分析
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;
}
}
- 方法签名的重要性
- 方法重载基于方法签名(方法名+参数列表)
- 返回值类型不参与重载决策
- 编译时多态
- 编译器在编译阶段确定调用哪个重载方法
- 基于参数的类型和数量进行静态绑定
- 类型转换与重载优先级
- 精确匹配 > 自动类型转换 > 装箱拆箱
square(7)
优先匹配int
版本
四则运算课堂测试系统
- 随机生成30道四则运算题目
- 支持加减乘除四种运算
- 操作数为0-100之间的整数
使用题目哈希去重
private SetquestionSet = new HashSet<>();
private String generateUniqueQuestion() {
String question;
do {
question = generateQuestion();
} while (questionSet.contains(calculateHash(question)));
questionSet.add(calculateHash(question));
return question;
}
减法约束:确保无负数
private int[] generateSubtractionNumbers() {
int num1 = random.nextInt(101);
int num2 = random.nextInt(num1 + 1); // 确保num2 <= num1
return new int[]{num1, num2};
}
乘法约束:结果不超过四位数
private int[] generateMultiplicationNumbers() {
int num1, num2;
do {
num1 = random.nextInt(100);
num2 = random.nextInt(100);
} while (num1 * num2 >= 10000);
return new int[]{num1, num2};
}
除法约束:必须整除
private int[] generateDivisionNumbers() {
int num2 = random.nextInt(99) + 1; // 避免除数为0
int result = random.nextInt(50) + 1;
int num1 = num2 * result;
return new int[]{num1, num2};
}
通过本次系统的学习和实践,我掌握了Java编程的基本语法,培养了解决实际问题的能力。方法重载让我理解了面向对象编程的多态特性