0
0

More than 3 years have passed since last update.

static

Last updated at Posted at 2019-12-05

初学者ですが、個人的な勉強のためにまとめてみました

静的である

ロード後、クラスファイルの内容はstaticなものはstatic領域というメモリ領域に、それ以外はヒープ領域に配置される
static領域に配置されたクラス変数クラスメソッドはそのクラス内で1つという位置付け。そのクラスからいくつインスタンスを生成してもインスタンスごとにメンバ変数、メソッドが割り当てられることはなく、一つのデータしか作成されない。したがって、すべてのインスタンスで同じ値を共有するのでインスタンスを作らなくても使える

 ※ロード・・・クラスファイルを読み込むこと

 ※クラス変数、クラスメソッド・・・static修飾子が付与されたものをクラス変数クラスメソッド、static修飾子が付与されていないものをインスタンス変数インスタンスメソッドと呼ぶ

staticのアクセス

staticなメンバはインスタンスの有無関係なしに使えるが、staticではないメンバは、インスタンスがないと使えない
このルールのため、staticメソッドはstaticで修飾されたもの以外にはアクセスできない

staticフィールド

・アクセスする方法は以下の2つ
 ①クラス名.フィールド名
 ②インスタンス作成後に変数名.フィールド名

・初期化する方法は以下の2つ
 ①宣言時に値を設定する
 ②staticイニシャライザで値を設定する

 ※staticイニシャライザ
 ・static修飾子が付与されたものだけがロード時に一度だけ実行されるブロック
 ・あるクラスをインスタンス化する前や、メインメソッドよりも前に呼び出し実行したい処理を記述

staticメソッド(クラスメソッド)

・staticメソッドはそのクラスに属し、インスタンスの状態に関係なく指定された処理を行うので、汎用的に使われる処理を実装するのによく使われる

・アクセス方法
 ①呼び出し
 クラス名.メソッド名(引数、...)
 ②関数型インターフェースのメソッド参照
 クラス名::メソッド名(引数、...)

0
0
0

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
0