在Java实验课程中,学生通常会接触到各种经典题型,这些题型有助于巩固编程基础,提高解决问题的能力。以下是一些从给定文件中提取的关键知识点:
1. **素数判断**:
- 程序用于找出2到1000之间个位数为3或7的素数。素数是指大于1且除了1和它本身外没有其他因数的自然数。
- 判断一个数是否为素数的方法是:从2开始,遍历到该数的平方根,如果能整除,则不是素数,否则是素数。这里使用了`for`循环和`Math.sqrt()`方法来计算平方根。
2. **排序算法**:
- 文件中的第二部分涉及三种基本排序算法:选择排序(choose)、冒泡排序(bubble)和插入排序(insert)。
- **选择排序**:通过比较找到数组中最小(或最大)的元素,与第一个位置交换,然后在剩余元素中重复此过程。代码中使用了两个嵌套`for`循环,外层循环遍历数组元素,内层循环找到当前未排序部分的最小值并交换。
- **冒泡排序**:相邻元素两两比较,如果顺序错误则交换,重复此过程直到数组有序。代码中也使用了两个嵌套`for`循环,外层控制遍历次数,内层实现相邻元素的比较和交换。
- **插入排序**:将元素视为已排序序列和未排序序列,每次从未排序序列中取出一个元素,插入到已排序序列的正确位置。代码中同样有两个嵌套`for`循环,外层循环遍历未排序部分,内层循环找到插入位置并进行插入。
3. **矩阵操作**:
- 实现了矩阵的转置和矩阵相加。矩阵转置是将矩阵的行变成列,列变成行。代码中使用了两个嵌套`for`循环来实现矩阵的转置,通过交换对角线两侧的元素完成。接着,代码再次遍历矩阵,将原矩阵和转置矩阵对应元素相加,输出结果。
4. **面向对象编程**:
- 创建了一个交通工具类`TransTool`,包含`run()`和`brake()`两个方法,这两个方法代表交通工具的运行和刹车行为。这是面向对象编程中的抽象,将共性功能封装到父类中。
- 建立了三个子类`Bike`、`Car`和`Bus`,它们继承自`TransTool`。这体现了继承的概念,子类可以拥有父类的所有属性和方法,并可以根据需要添加自己的特有属性和方法。
以上知识点涵盖了基础的数学概念(素数),数据结构(排序),以及面向对象编程的基本原理。通过这些练习,学生能够深入理解Java编程语言的核心概念,提升编程能力。