Java.Lang.Mathが抽象的でないのはなぜですか?

Niko Bellic:

「抽象」キーワードは、クラス(オブジェクト)のインスタンスを作成できないことを意味します。

Java.Lang.Mathの前には次のキーワードがあります

public final class Math {
...
}

しかし、「抽象的な」キーワードはありません。このクラスは、PIやsin()などの関連する静的変数とメソッドのコレクションを提供するだけです。

静的とは、それらの変数/メソッドをオブジェクトの異なるインスタンス間で一意にすることはできないことを意味します(クラス自体に関連付けられている変数/メソッドのコピーは1つだけです)。では、なぜプログラマがクラスのインスタンスを作成できるようにするのでしょうか。「abstract」に先行しないのはなぜですか?

Gladwin Burboz:

java.lang.Math Utilityクラスです(静的ユーティリティメソッドのみが含まれます)。

ユーティリティクラスを定義する正しい方法は、他のクラスがそれを拡張できないようにそれをfinalにし、誰もクラスのインスタンスを作成できないように引数なしのプライベートコンストラクターを持つことです。

したがって、クラスのインスタンスを作成することはできません。ただし、抽象的なアプローチをとる場合、final使用することはできず、それが拡張されるのを防ぐ方法はありません。したがって、以前のアプローチの方が優れています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

java.lang.Objectが抽象的でないのはなぜですか?

分類Dev

列挙型のメソッドvalueOf(String name)が抽象クラスjava.lang.Enumで定義されていないのはなぜですか?

分類Dev

java.lang.NumberがComparableを実装しないのはなぜですか?

分類Dev

Java.lang.ObjectがSerializable Interfaceを実装しないのはなぜですか?

分類Dev

Java標準APIにcommons-langがないのはなぜですか?

分類Dev

なぜshortValue()メソッドは具象ですが、intValue()はjava.lang.Numberに抽象化されているのですか?

分類Dev

java.lang.NullPointerExceptionが発生するのはなぜですか?

分類Dev

java.lang.UnsupportedOperationExceptionが発生するのはなぜですか?

分類Dev

java.lang.NullPointerExceptionが発生するのはなぜですか

分類Dev

java.lang.Integerがjava.lang.Longを拡張しないのはなぜですか?

分類Dev

java.lang.Voidがシリアル化できないのはなぜですか?

分類Dev

「java.lang.OutOfMemoryError:Java heap space」がキャッチされないのはなぜですか?

分類Dev

java.lang.String []がそのメソッドの1つを認識しないのはなぜですか?

分類Dev

java.lang.Objectクラスのclone()メソッドに本体がないのはなぜですか?

分類Dev

java.lang.ObjectがJavaで実装されているのはなぜですか?

分類Dev

java.lang.Enum :: valueOfがnull名を最初にチェックしないのはなぜですか?

分類Dev

Scalaがjava.lang.StackOverflowErrorをキャッチしないのはなぜですか?

分類Dev

java.lang.ArithmeticException:ゼロ除算が発生するのはなぜですか

分類Dev

java.lang.AbstractMethodErrorエラーが発生するのはなぜですか?

分類Dev

clone()メソッドがjava.lang.Objectで保護されているのはなぜですか?

分類Dev

起動時にjava.lang.Threadが明示的なjava.lang.Runnableのrun()メソッドを呼び出さないのはなぜですか?

分類Dev

「java.lang.NoClassDefFoundError:kong / unirest / Unirest」が表示されるのはなぜですか?

分類Dev

なぜ私は得るのですか:java.lang.UnsatisfiedLinkError

分類Dev

messageConverter.fromMessage()が配列リストを変換しないのはなぜですか?java.lang.ClassCastException:java.lang.Stringをキャストできません

分類Dev

なぜ「else」がないと、BTreeの先行走査でjava.lang.NullPointerExceptionがスローされるのですか?

分類Dev

java.lang.Objectのfinalize()メソッドが「保護されている」のはなぜですか?

分類Dev

Gson.asStringを使用しているときにjava.lang.UnsupportedOperationExceptionが発生するのはなぜですか?

分類Dev

java.util.Observableが抽象クラスではないのはなぜですか?

分類Dev

java.lang.Mathとjava.lang.StrictMathの違いは何ですか?

Related 関連記事

  1. 1

    java.lang.Objectが抽象的でないのはなぜですか?

  2. 2

    列挙型のメソッドvalueOf(String name)が抽象クラスjava.lang.Enumで定義されていないのはなぜですか?

  3. 3

    java.lang.NumberがComparableを実装しないのはなぜですか?

  4. 4

    Java.lang.ObjectがSerializable Interfaceを実装しないのはなぜですか?

  5. 5

    Java標準APIにcommons-langがないのはなぜですか?

  6. 6

    なぜshortValue()メソッドは具象ですが、intValue()はjava.lang.Numberに抽象化されているのですか?

  7. 7

    java.lang.NullPointerExceptionが発生するのはなぜですか?

  8. 8

    java.lang.UnsupportedOperationExceptionが発生するのはなぜですか?

  9. 9

    java.lang.NullPointerExceptionが発生するのはなぜですか

  10. 10

    java.lang.Integerがjava.lang.Longを拡張しないのはなぜですか?

  11. 11

    java.lang.Voidがシリアル化できないのはなぜですか?

  12. 12

    「java.lang.OutOfMemoryError:Java heap space」がキャッチされないのはなぜですか?

  13. 13

    java.lang.String []がそのメソッドの1つを認識しないのはなぜですか?

  14. 14

    java.lang.Objectクラスのclone()メソッドに本体がないのはなぜですか?

  15. 15

    java.lang.ObjectがJavaで実装されているのはなぜですか?

  16. 16

    java.lang.Enum :: valueOfがnull名を最初にチェックしないのはなぜですか?

  17. 17

    Scalaがjava.lang.StackOverflowErrorをキャッチしないのはなぜですか?

  18. 18

    java.lang.ArithmeticException:ゼロ除算が発生するのはなぜですか

  19. 19

    java.lang.AbstractMethodErrorエラーが発生するのはなぜですか?

  20. 20

    clone()メソッドがjava.lang.Objectで保護されているのはなぜですか?

  21. 21

    起動時にjava.lang.Threadが明示的なjava.lang.Runnableのrun()メソッドを呼び出さないのはなぜですか?

  22. 22

    「java.lang.NoClassDefFoundError:kong / unirest / Unirest」が表示されるのはなぜですか?

  23. 23

    なぜ私は得るのですか:java.lang.UnsatisfiedLinkError

  24. 24

    messageConverter.fromMessage()が配列リストを変換しないのはなぜですか?java.lang.ClassCastException:java.lang.Stringをキャストできません

  25. 25

    なぜ「else」がないと、BTreeの先行走査でjava.lang.NullPointerExceptionがスローされるのですか?

  26. 26

    java.lang.Objectのfinalize()メソッドが「保護されている」のはなぜですか?

  27. 27

    Gson.asStringを使用しているときにjava.lang.UnsupportedOperationExceptionが発生するのはなぜですか?

  28. 28

    java.util.Observableが抽象クラスではないのはなぜですか?

  29. 29

    java.lang.Mathとjava.lang.StrictMathの違いは何ですか?

ホットタグ

アーカイブ