静的メソッドとインスタンスメソッドがJavaで使用される方法の違いは何ですか?

本を読んでいるうちに、私はこの声明に出会った:


The methods of an object define its behaviour. These methods are called instance methods. It is important to note that these methods pertain to each object of the class. This should not be confused with the implementation of the methods which is shared by all instances of the class.


私はインスタンスメソッドが何であるか知っています。私は静的メソッドが何であるかを知っています(つまり、クラスのすべてのインスタンスによって共有されています)。上記のステートメントは、メソッドの実装がすべてのインスタンスによって共有されることを示唆しているようです。これはどういう意味ですか?それは静的メソッドを参照しているような音はありません。

0
それは、混乱させようとするもののように聞こえ、仕様言語の細部の驚くべき作者の作者を実証するように思えます。しかし、彼が言うことは、インスタンスメソッドを構成する実際のステートメントは、すべてのオブジェクトによって共有されているということです。つまり、各オブジェクトインスタンスごとに個別のコピーがあります。
追加された 著者 Hot Licks,

2 答え

つまり、クラスの各インスタンスの横にコードそのものを追加コピーしないということです。この振る舞いはクラスのインスタンスに関連付けられているので、コンテキストがありますが、インスタンスメソッドのメモリなどで支払う余分な "インスタンスごとの"価格はありません。

static についての留意すべき重要なポイントは、 any インスタンス、それは使用できません。クラスの特定のインスタンスの代わりにクラス自体に関連付けられていると言いたいと思います。

8
追加された
はい、わかった。ありがとう。
追加された 著者 ziggy,

インスタンスは実装を共有しますが、実装は単一インスタンスで動作します。

  • "these methods pertain to each object of the class" - method acts on single instances.
  • "implementation of the methods which is shared by all instances" - there's only one implementation of the method.
1
追加された