数字格式 class

NumberFormat class

所以我认为到目前为止我已经掌握了对象和 classes,但我错了。因为我正在阅读一本关于 Java 的书,所以我遇到了 NumberFormat class,现在我很困惑。

通常当您访问 class 中的方法和变量时,您会使用以下代码创建一个对象,并使用该对象访问所需的方法和变量,但它不会像那样工作在这种情况下。

NumberFormat formatingExample = new NumberFormat();

但是现在我在书上看到你其实可以这样做

NumberFormat formatingExample = NumberFormat.getCurrencyInstance();

在该代码之后,您可以使用以下代码访问其他方法

String price = formatingExample.format(11.5);

现在我真的不明白所有这些代码的含义和作用。构造函数在哪里以及 formatingExample 现在如何成为一个对象???我们直接从 NumberFormat class 调用一个静态方法并将其保存到一个名为 formating example 的引用变量 (NumberFormat) 中,但是这个方法实际上做了什么?用于创建对象的 "new" 关键字在哪里。我是 java 的新手,只是一般编程,所以我真的很困惑......我认为它掌握了对象和 classes 的窍门,但这真的让我感到困惑。

问:它是什么,它有什么作用? * NumberFormat class 是抽象的 class 因为它是 Java 中每个数字格式的基础 class(例如包括 DecimalFormat)。

  • 此设计使您可以灵活地在运行时以某种方式确定 return 的适当子 class 实例,而不会在 design/compile 处使该设计过于僵化时间。静态方法免于抽象,因此 class 可以作为具体实现的工厂和抽象超类型。

    class 中有一个 public 静态方法,即

    public static final NumberFormat getInstance()

    这也是 NumberFormat 的实例,但它是 it.You 的 subclass 的具体实例,无论如何无法实例化 abstract 。在这种情况下,该方法用于为您的语言环境获取默认格式化程序。

问:class 的构造函数在哪里? 拥有一个本质上未知的数字格式的构造函数是非常无用的。 Bcz 它是其他 classes 的基础 class,创建未知数字格式的实例是没有用的。

问:new关键字在哪里? 由于 class 是抽象的,因此无法使用 new 关键字直接实例化它。