スタティックとインスタンス

javanのclass型には、スタティックとインスタンスの2つの概念がある。

 スタティックとは、class型に直接属しているものを指す。classに関連づけられているので、インスタンスオブジェクトを作成せずに、main()クラスから直接呼び出せる。よって、インスタンスオブジェクトに直接関係しない。方定式や三角関数等はスタティックにより作成する。

 

 インスタンスとは、class型には実体はなく、実体を生成する為のコードの事。main()クラスで、newによるインスタンスオブジェクトを作成して初めて実体化される。newによるオブジェクトの作成は、何個でも作成する事ができるので、main()クラス内でclass型の内容が同じで値が違うclassを複数作成する事ができる。classをひな形として捉えると理解しやすい。

 

 スタティック変数(文字列を含む)

スタティック変数は、class内に直接保存している変数の事。

main()クラスでの呼び出し方は、

『クラス名.変数名』

『クラス名.文字列名』

になる。

class名を直接指定して呼び出しを行うので、同名の変数は1つしか存在しない。よって、同じ内容で値が異なるスタティック変数は複数作成できない。

 

 インスタンス変数

インスタンス変数を使用するには、まずnewによる、インスタンスオブジェクトの作成(参照ブログ→インスタンスオブジェクトの作成)を行う。

class型変数の宣言と初期化を行う事により、初めてインスタンス変数をオブジェクトとして実体化し使える様になる。newにより識別子を任意で付けられるので、同じ内容で値が異なるclass型変数を複数作成できる。

 

 スタティックメゾット

 インスタンスに属さない、メゾットになる。スタティック変数に対して、処理を行うメゾットを指す。スタティックメゾットは、newによって宣言初期化代入したインスタンスオブジェクトは一切参照実行ができない。main()メゾットでの呼び出し方は、

クラス名.メゾット名(引数);

になる。

 

 インスタンスメゾット

インスタンスに属するメゾットになる。インスタンス変数を処理するメゾット。newによる初期化が必要になる。

識別子.メゾット名(引数);

となる。