Menu
CoddyTech

回顾:计数器与工具类

本课属于 Coddy Java 学习旅程的“面向对象编程”单元。第 19 课,共 87 课。

challenge icon

挑战

简单

让我们构建一个完整的系统,将用于跟踪实例的 Counter 类与 MathUtils 工具类结合起来,综合运用你学过的静态变量、静态方法、静态代码块和常量。

你将创建 3 个文件来组织代码:

  • Counter.java:创建一个用于跟踪已创建实例数量的类:
    • 一个私有静态变量,用于统计实例总数
    • 一个私有实例变量 id,用于存储每个计数器的唯一标识符
    • 一个构造函数,用于增加实例总数,并将当前总数赋给此实例的 id
    • 一个方法 getId(),用于返回此计数器的唯一 id
    • 一个静态方法 getTotalCount(),用于返回已创建的 Counter 对象数量
  • MathUtils.java:创建一个只包含静态成员的工具类(不会实例化):
    • 一个值为 3.14159 的公有常量 PI
    • 一个值为 0.5 的公有常量 HALF
    • 一个静态方法 square(int n),用于返回 n 的平方
    • 一个静态方法 cube(int n),用于返回 n 的立方
    • 一个静态方法 circleArea(double radius),用于返回 PI * radius * radius
  • Main.java:演示这两个类如何协同工作。你会收到两个输入:一个用于数学运算的数字,以及要创建的 Counter 对象数量。打印以下内容:
    • Square: [value]
    • Cube: [value]
    • Circle area (radius=[number]): [value](面积格式为 2 位小数)
    • 每创建一个 Counter,就打印:Counter [id] created
    • 最后打印:Total counters: [count]

你会收到两个输入:一个用于数学计算的数字(int),以及要创建的 Counter 对象数量(int)。

记得通过类名访问静态成员,例如 MathUtils.PI 和 Counter.getTotalCount(),并使用 String.format("%.2f", value) 格式化小数值。

亲手试试

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int number = scanner.nextInt();
        int count = scanner.nextInt();
        
        // TODO: 使用 MathUtils 的静态方法计算并打印:
        // - 平方:[value]
        // - 立方:[value]
        // - Circle area (radius=[number]):[value](保留 2 位小数)
        
        // TODO: 创建 'count' 个 Counter 对象
        // 每创建一个 Counter 对象,就打印:Counter [id] created
        
        // TODO: 打印已创建的 Counter 对象总数
        // Total counters: [count]
    }
}

面向对象编程中的所有课

自己练习: Java 在线编译器