0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

「static」と「インスタンス」

Posted at

static変数とインスタンス変数の違い

static変数とは、static修飾子がついた変数のことです。
また、static修飾子がついていない変数のことをインスタンス変数といいます。

  • インスタンス変数は、「クラスのオブジェクト(インスタンス)を生成したタイミングで作られる変数」です。
    そして、「クラスのオブジェクト(インスタンス)毎に管理されています」。(オブジェクト毎に変数が作られる)
Sample.java
Sample m = new Sample();
m.instanNum = 1;
  • static変数は、「クラスのオブジェクト生成(インスタンス生成)に関係なく作られる変数」です。(static変数に最初にアクセスしたタイミングで作られる)
    そのため、「クラスのオブジェクト(インスタンス)に関係なく共通で管理しています」。(共通で1つの変数が作られる)
    static変数は、静的な変数であり、オブジェクト毎に管理しているインスタンス変数とは違い、static変数の実体は1つです。
Sample.java
Sample.staticNum = 1;

staticメソッドとインスタンスメソッドの違い

staticメソッドとは、static修飾子がついたメソッドのことです。
また、static修飾子がついていないメソッドのことをインスタンスメソッドといいます。

staticメソッドの主な使い方は、インスタンスの状態に依存しない処理をさせることです。これはユーティリティメソッドとも呼ばれ、決まりきった処理などに用いられます。

インスタンスメソッドは、クラスのオブジェクト(インスタンス)を生成したタイミングで使えるようになるメソッドです。それに対しstaticメソッドは、クラスのオブジェクト(インスタンス)を生成しなくても使うことができます。

0
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?