今回の内容で活用するEclipseのショートカット
変数にカーソルを合わせてダブルクリック→変数を強調
「Ctrl+Shift+R」→リソースファイルを検索
「Fn+F3」→メソッドにカーソルを合わせるとそのメソッドに飛ぶ
コンストラクタについて
1.newする(インスタンス化)
2.インスタンスが生まれ、フィールドが初期化される
3.自動的にコンストラクタが実行される
このような流れで処理されます。
全てのクラスはnewすると必ずコンストラクタを実行します。
つまり、最低でも1つ以上のコンストラクタを持つ必要があります。
では、コンストラクタが用意されていない場合は?
引数なし、処理なしのコンストラクタが裏で自動的に定義されます。
これを暗黙のコンストラクタ(デフォルトコンストラクタ)といいます。
そして、コンストラクタとみなされる条件は以下の2つです。
1.メソッド名とクラス名が同じ
2.戻り値なし(voidも不可)
また、this(実引数)で同じクラスの別コンストラクタを呼び出します。
this.メンバ名(メソッドやフィールド)とは別です。
staticフィールド(静的フィールド、またはクラスフィールド)
静的フィールドへの値の代入
クラス名.フィールド名 = 値;
静的フィールドの値の取得
クラス名.フィールド名
静的メソッド(クラスメソッド)の利用(呼び出し)
クラス名.メソッド名(0個以上の引数);
静的メソッドの制約として、
staticメソッドの中での処理で、
staticがついていないフィールドやメソッドは利用できません。
staticはインスタンスにアクセスできません。
言い換えると、staticはstaticにしかアクセスできません。
クラス名.で呼び出さないといけません。
アクセス修飾子
コードの中の記述 | 許可する範囲 |
---|---|
private | 自分自身のクラス |
(記述なし) | 自分と同じパッケージに属するクラス |
protected | 自分と同じパッケージに属するクラス 、もしくは自分を継承したクラス |
public | 全てのクラス |
上に行くほど制限が厳しく、下に行くほど制限が緩いです。
フィールドは全てprivateで書かなければなりません。
getterとsetter
このようにアクセス制限をすると代入したりフィールドの値を取得したりすることができなくなります。
そのために使われるのがgetterとsetterです。
ですが、この構文は覚える必要がありません。
Eclipseが肩代わりしてくれます。
方法は以下の通り
Eclipse上で右クリック→「ソース」→「getterおよびsetterの生成」
コードの中の記述 | 許可する範囲 |
---|---|
(記述なし) | 自分と同じパッケージに属するクラス |
public | 全てのクラス |
非publicクラスの特徴
①クラス名とソースファイル名が異なってもよい
②1つのソースファイルに複数宣言してもよい