1
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 java】静的メンバ

Last updated at Posted at 2022-11-23
public static void main(String[] args) 

この「static」とはなんだろう。

staticとは静的メンバである。

ざっくり簡単に言えば

「インスタンスを生成しなくてもフィールドやメソッドを利用できる」

オブジェクト指向の基本原則として「インスタンスの独立性」というものがありインスタンスを生成することにより"独立性を担保"できるので
今まではインスタンスを生成するごとに違う値を入れられていたと思う。

インスタンス生成(例)
Man m1 = new Man();
Man m2 = new Man();
Man m3 = new Man();

//それぞれnameフィールドが用意されていた場合
m1.name = "m1";
m2.name = "m2";
m3.name = "m3";

staticを使った利用

大きく分けて 「staticメソッド」「staticフィールド」 の2つ。

staticメソッド
public class Calc {
    int sum = 0;
    int a = 2;
    int b = 3;
    public static void calculate() {
        sum = a * b;
    }
}
staticフィールド
pubic class Bank {
    static int money = 100;
}

staticを使うと何がメリットか

staticメソッド

インスタンスを生成しなくてもクラス名.メソッド名();などで呼び出せる。

staticフィールド

あるクラスにおいて唯一無二のフィールドになる。同クラスの複数のメソッドで同じフィールドを使いたい場合などに役立つ。

共通して言えることは
         「メソッドやフィールドがクラスに属するようになる」
ということである。

呼び出し方

staticメソッド
//【クラス名】.【メソッド名】;
Calc.calculate();
staticフィールド
Bank.money;
//【クラス名】.フィールド名;
System.out.println(Bank.money);

以上のようなところから、一番最初に書いたmainメソッドの呼び出しは'static'がついているのでインスタンスを生成しなくても呼び出せる仕組みになっています。

【注意】

・使い過ぎは可読性やオブジェクト指向原則である「インスタンスの独立性」が失われてしまうところがあるので使用の際は現場やチームの意向に遵守して使うようにしてください。


【追記】

javaを学習し始めて10ヶ月ほど経つが正確に理解したことはなかったので今回良い機会だと思いまとめてみました。まだまだ勉強し始めなので粗い理解の点もありますので指摘ありましたらコメントで宜しく御願いします!!

1
1
2

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
1
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?