Java Day 2-3 复习笔记 (26.2.2)

1. 核心实战:房贷计算器进阶

输入与校验逻辑 (Scanner & Validation)

使用 Scanner 接收用户输入,并配合 if 语句进行有效性判断(卫语句风格)。

  • 输入工具:JavaScanner scanner = new Scanner(System.in); // 技巧:记不住类型可以用 var scanner = new Scanner(System.in);
  • 校验逻辑 (Guard Clauses):
    • 本金校验:if(p <= 0) $\rightarrow$ 提示 “贷款金额必须 > 0″。
      • 逻辑: 先比较再取反(推荐直接写 p <= 0 而不是 !(p > 0))。
    • 利率校验: if(yr < 1.0 || yr > 36.0) $\rightarrow$ 提示 “年利率必须是 1~36″。
    • 月份校验: if(m < 1 || m > 360) $\rightarrow$ 提示 “贷款月数必须是 1~360″。

数学计算 (Math Logic)

  • 月利率: double mr = yr / 12.0 / 100;
  • 幂运算: double pow = Math.pow(1 + mr, m);
  • 月供公式: double payment = p * mr * pow / (pow - 1);

循环拆解 (The Loop)

计算每月的本金与利息详情,关键在于更新剩余本金

Java

for (int i = 0; i < m; i++) {
    double payInterest = p * mr;                 // 1. 偿还利息
    double payPrincipal = payment - payInterest; // 2. 偿还本金
    p -= payPrincipal;                           // 3. 更新剩余本金 (核心)

    // 打印每月详情 (i+1 表示月份)
    // ...使用 NumberFormat 格式化输出
}

格式化输出 (Formatting)

使用核心类库 NumberFormat 处理货币显示(自动添加  和千分位)。

  • 代码: NumberFormat.getCurrencyInstance(Locale.CHINA).format(变量)
  • 应用: 用于本金、利息、总还款额的显示。

2. 方法入门 (Methods)

定义与概念

把方法想象成**“被折叠的代码”**,调用时才会展开。

  • 语法:Javastatic int add(int a, int b) { // "int a, int b" 是形参 int c = a + b; return c; }

调用方式

  • 本类调用: int d = add(100, 200); (不用写类名)
  • 跨类调用: TestMethod.add(100, 200);
  • 实参: 调用时传入的实际数值 (如 100200)。

3. IDE 效率快捷键 (IntelliJ IDEA)

根据代码注释整理的高频快捷键:

  • 代码补全: Ctrl + Shift + Enter (补全当前语句,如分号、括号)。
  • 类搜索: Ctrl + N (查找核心类库,如 Scanner)。
  • 自动导包/修复: Alt + Enter (引入局部变量、生成变量定义、取反逻辑)。
  • 复制行: Ctrl + D (快速复制当前行代码)。