国庆作业

Java第二讲《方法》课件内容总结

这份课件围绕Java的方法、递归、大数与浮点数处理展开,还包含编程思想与课后实践作业。

一、编程思想:为什么要有方法

1. 方法是懒人创造的:以李冰“积薪烧石”对比愚公凿石举例,方法是找到更高效解决问题的手段,突破人力/重复劳动的局限;编程里不要把百万行代码堆在单个文件,要拆分单元、模块,开启结构化编程。
2. 知识要分类整理:学习编程要归纳整理知识,建立自己的代码库,方便复用提升效率。
3. Java模块化:系统拆分为子模块;Java模块包含方法、类、包;类是Java最基本构造单元,方法是类最重要成员。

二、Java方法核心知识点

  1. 方法定义语法

plaintext

访问权限 [static] 返回值类型 方法名(参数列表) {
语句;
return 表达式;
}

  • static静态方法:可以直接用 类名.方法名() 调用;JDK的 Math 类全部是静态方法。
  • 静态导入(JDK5.0+): import static java.lang.Math.*; ,调用时省略类名。
  1. 常用示例

1. 自定义静态方法:示例实现求平方 square() ;
2. 随机数:

  • Math.random() 生成 [0,1) 浮点数; (int)(Math.random()*6) 得到0‑5整数;
  • Random 类生成随机数,相同seed种子产生相同序列;一般用系统时间 System.currentTimeMillis() 作为种子;
    3. 可变参数(JDK5.0+): 类型 ... 变量名
  • 规则:只能放在参数列表最后;编译器底层把可变参数转为数组,方法内按数组遍历。
  • 示例: public static double max(double ... values) 。
  1. 方法重载 overloading
  • 条件:方法名相同,参数个数/类型/参数类型顺序不同;返回值类型不作为重载判断依据。
  • 例子:同一个 square ,分别接收int、double类型参数; System.out.println() 就是大量重载。

三、递归

1. 递归含义:方法自己调用自己;把大问题转化为规模更小的同类子问题。
2. 典型案例:求n阶乘

  • 公式: n! = n*(n‑1)! ;必须设置终止条件(基线条件),n=1时返回1,否则无限递归。
    3. 递归模式要点
    1. 函数开头用if判断终止条件;
    2. 至少一处自己调用自己;
    3. 参数变量每次调用趋向终止条件(数值变小)。
    4. 递归 vs 递推(循环)
  • 递归:先向下拆解问题,再回溯计算;
  • 递推:循环从前向后逐步计算;同一问题两种方式都可以实现,按需选择。

四、大数字与浮点数问题

1. 基本数据类型有数值上限:int、long存储位数固定,计算阶乘等大数会溢出,出现负数等错误结果。
2. BigInteger大整数类:用来处理无限大整数,提供 multiply() 等运算方法,解决整数溢出。
3. 浮点数比较陷阱:double不能精确存储部分小数,禁止直接用 == 判断相等;应当判断两者差值绝对值小于极小阈值,例如 Math.abs(i‑j) <1e‑10 。

五、课后实践作业

1. 编程作业:小学生四则运算出题程序,分两个阶段

  • 阶段1:生成30道四则运算题;
  • 阶段2:题目去重,减法无负数、乘法不超四位、除法整除;增加答题、统计正确率、倒计时功能,全部使用方法封装实现。
    2. 文档作业:整理课件动手动脑题目,以博客形式发布,规定截止时间。

补充学习建议

平时收集、分类整理可复用代码,构建个人代码仓库,比临时搜索资料效率更高。

posted @ 2026-10-05 11:05  冯佳蕾  阅读(4)  评论(0)    收藏  举报