方法内容总结

一、方法的思想来源

用李冰“积薪烧石”和愚公凿石对比引出方法的意义:方法是解决问题的新思路,突破人力局限;程序开发中,把大程序拆分成单元、模块,实现分工协作,开启结构化编程。
编程学习要学会对知识分类整理,建立自己的代码仓库,提高开发效率。

二、Java方法核心知识点

1. 模块化原则:Java模块分为方法、类、包;类是基础单元,方法是类最重要的成员。
​
2. 静态方法
​

  • JDK的 Math 类提供大量静态数学方法,使用 类名.方法名() 调用,例如 Math.sqrt() 。
    ​
  • JDK5.0支持静态导入  import static java.lang.Math.*; ,调用时省略类名。
    ​
    3. 方法定义语法: 访问权限 [static] 返回值类型 方法名(参数列表){语句; return 表达式;} 。static修饰的静态方法,可直接通过类调用。课件示例自定义求平方的static方法。
    ​
    4. 随机数实现
    ​
  • Math.random() :生成 [0,1) 小数,强转实现指定范围随机整数。
    ​
  • Random 类:可指定种子;相同种子会生成完全一样的随机序列;常用当前时间戳 System.currentTimeMillis() 作为种子。
    ​
    5. 可变参数(JDK5新增)
    ​
  • 语法: 类型 ... 变量名 ;只能放在参数列表最后;底层编译器自动转为数组,方法内按数组访问。
    ​
    6. 方法重载
    ​
  • 条件:方法名相同,参数列表不同(个数、类型、参数顺序);返回值不能作为重载判断条件。
    ​
  • 例子: System.out.println() 拥有大量重载版本,适配不同数据类型。

三、递归

1. 概念:方法自己调用自己;将大问题拆解为规模更小的同类子问题,直到基线条件终止调用。
​
2. 阶乘示例:n! = n\times(n‑1)!,基线条件:1!=1。
​
3. 递归编写模式
​

  • 开头判断递归终止条件;
    ​
  • 存在自调用语句;
    ​
  • 参数不断变化(一般变小),保证递归能够结束。
    ​
    4. 递归 vs 递推
    ​
  • 递归:先向下拆解,再回溯计算结果;
    ​
  • 递推:循环实现,从小到大一步步计算。
    ​
  • 同一问题两种方式均可实现,根据场景选用。

四、大数字与浮点数处理

1. 整数溢出问题:int、long存储空间固定,数值超出范围会溢出,出现负数等错误结果,例如大数阶乘。
​
2. BigInteger大整数类:专门处理超大整数,通过对象方法 multiply() 等完成四则运算,不受位数限制。
​
3. 浮点数比较陷阱:double不能精确存储部分小数,不能直接用 == 判断相等;应当判断两个数差值的绝对值小于极小阈值,如 Math.abs(i-j) <1e‑10 。

五、课后实践任务

1. 阶段1:写程序自动生成30道小学四则运算题。
​
2. 阶段2增强需求:题目不重复;减法无负数、乘法结果不超四位、除法必须整除;实现答题、统计正确率、倒计时计时功能,功能用方法封装实现。
​
3. 作业:整理课上动手动脑习题,以博客形式发布。

核心思想:方法用于封装重复逻辑,提高复用;递归用于分治问题;注意基本数据类型溢出、浮点数精度陷阱。

posted @ 2026-10-08 13:34  解雪涵  阅读(4)  评论(0)    收藏  举报