3
0

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.

java初心者がいく~static~

Posted at

はじめに

java初心者が議事録的に書いています。
今回はstaticの代表的な使い方2パターンを描いていこうと思います。

staticメソッド

java初心者の人はおまじないのようにstaticを使っていませんか?
特に以下のようなときに何となくかいていませんか?(私もそうでした)

public class Driver {
    public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
	}
}

ではこのstaticはどういう意味があるのでしょか。
結論から言うと、staticがついているメソッドは「インスタンス化しなくても呼び出せる」という特徴があります。
ふつうはメソッドを呼び出すときはnewを使ってインスタンス化した後に呼び出しています。しかしmainメソッドのように一番最初に呼び出すメソッドはインスタンス化できません。
そこでstaticをつけることでインスタンス化しなくても呼び出せるようにしているのです。

static変数

staticはメソッドだけでなく変数にもつけることができます。
書き方としては以下の通り。

class Sample{
    public static int num = 1;
}

ではインスタンス変数を用いることでなにがうれしいのでしょうか。
static変数を用いることでそのクラスから生成されたすべてのインスタンスで共有される値になります。

例えば以下のようなクラスがあるとします。
これを実行すると、、

public class Store {
	public static int num = 1;
}
public class Driver {

	public static void main(String[] args) {
		Store st = new Store();
		Store at = new Store();

		st.num = 2;

		System.out.println(at.num);
	}
}
実行結果
2

となります。
ここからわかる通り、直接的にat.numに触れていないにも関わらずat.numの値が変わっていることがわかります。(ちなみにstaticを外して実行すると実行結果は「1」になります)

以上がstaticの代表的な使い方です。
おまじないを少しでも減らしていきましょう!

3
0
1

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
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?