Please enable JavaScript.
Coggle requires JavaScript to display documents.
4/26 (クラスとインスタンス (クラス (フィールド (フィールドとローカル変数のスコープ (フィールド=クラスに属する変数…
4/26
クラスとインスタンス
クラス
クラス名
フィールド
クラスに属する変数
メソッドの外で定義
フィールドへのアクセス
<インスタンス変数名>.<フィールド名>
でフィールドにアクセスできる
フィールドとローカル変数のスコープ
フィールド=クラスに属する変数
クラス内ならどこでも参照できる
クラス外からもアクセスできることがある
ローカル変数=メソッド内で宣言される変数
そのメソッド内でしか参照できない
フィールドの初期化
インスタンス生成時点で、フィールドに
「デフォルトの初期値」が代入される
boolean = false
整数、小数=0
文字列 = null
メソッド
クラスに属する処理
フィールドとメソッドを合わせて「
メンバ
」とも呼ぶ
インスタンス
メモリに展開されているクラスの領域
インスタンスの生成
new <クラス名>()
インスタンスを生成することをnewするとも
クラスとインスタンスの関係
クラス=定義
設計図
インスタンス=実態
実際に存在しているもの
「オブジェクト」という場合もある
設計図をもとに作られた「モノ」
コンストラクタ
インスタンスを生成するメソッド
インスタンス生成時に1度だけ実行される処理
フィールドの初期化に利用される
デフォルトコンストラクタ
クラス内にコンストラクタを定義していない場合
コンパイラが自動的に生成するコンストラクタ
引数なし、処理なしのコンストラクタ
クラス内に1つでもコンストラクタを定義している場合、
デフォルトコンストラクタは生成されない点に注意
デフォルトコンストラクタが必要な処理がないか確認
thisキーワード
「このインスタンス」をあらわす
引数つきのコンストラクタで
this.<引数> = <引数>
のように表されることが多い
参照型変数
オブジェクト型に用いられる
Stringやインスタンスなど
変数内には値そのものではなく、
オブジェクトの存在するメモリ番地を格納
デフォルトはnull
NullPointerException
インスタンス変数がnullのときに参照しようとすると出る例外
代入の漏れが無いか確認
参照型変数の代入
代入すると、参照する番地の値がコピーされる
同一のインスタンスを参照する
ガベージコレクション
参照されなくなったインスタンスは、JVMによって
自動的にメモリから破棄される
オーバーロード
同一クラス内に、同じ名前のメソッドを複数定義すること
多重定義とも呼ばれる
引数の型が違っていても、意識することなくメソッドを使用する事ができる
メソッドのシグネチャ
メソッド名+引数の型の並び
シグネチャが違えば、メソッド名が同じメソッドを同一クラス内に何個でも定義できる
戻り値の方が違っていても、シグネチャが同じなら定義できない
コンストラクタのオーバーロード
引数を変えることによって、
コンストラクタを複数定義できる
コンストラクタのthis()
そのクラスのコンストラクタを表す
this(値1, 値2)で
コンストラクタを呼び出せる
拡張for文
for(int <変数名> : <配列名>)
変数の中に配列の要素を1つずつ代入する
変数の型は、代入できるものにする
配列の初期値を代入
<型>[] <配列名> = {値1, 値2...}
要素数を宣言する必要がない