5章 クラスの宣言とインスタンス化 Flashcards
クラス
オブジェクトの属性と操作を定義するもの。
属性:個々のオブジェクトの特性や状態。何らかのデータであり変数で管理。
操作:オブジェクトの振る舞い(動作)。処理を記述したメソッドで定義。
メンバ
クラス内のオブジェクトに必要な属性と操作を、変数とメソッドで定義したもの。
クラス宣言
オブジェクトの属性と操作を定義するもの。
[ 修飾子 ] class クラス名 {}
修飾子
クラスやメソッド、変数などのアクセス権限や動作の特性を指定するキーワード
大きく分けて以下の2種類がある。
- アクセス修飾子
・public
・protected
・default (指定なし)
・private - 非アクセス修飾子
・static
・final
・abstract
public
アクセス修飾子
どのクラスからでもアクセス可能
protected
アクセス修飾子
同じパッケージ内、またはサブクラスからアクセス可能
default (指定なし)
アクセス修飾子
同じパッケージ内からのみアクセス可能
private
アクセス修飾子
同じクラス内からのみアクセス可能
static
非アクセス修飾子
インスタンスを作成せずに使用可能
final
非アクセス修飾子
値の再代入・オーバーライド禁止
abstract
非アクセス修飾子
インスタンス化不可・サブクラスで実装が必要
メンバ変数宣言
オブジェクトの変数を保持する変数の宣言
[ 修飾子 ] データ型 変数名;
メンバメソッド宣言
オブジェクトの操作を行うメソッドの宣言
[ 修飾子 ] 戻り値の型 メソッド名(引数リスト){
処理;
[ return 戻り値 ;]
}
this.アクセスしたいメンバ
自分自身のオブジェクトを意味するキーワード。
自オブジェクトのメンバ(変数やメソッドなど)にアクセスするときに記述。
オブジェクトの生成
クラスを元にオブジェクトを生成するときにはnewキーワードを使用。
クラス名 変数名 = new クラス名();
または
クラス名 変数名;
変数名 = new クラス名();
オブジェクトへのアクセス
クラスをインスタンス化した後に、作成したオブジェクトのフィールドやメソッドに対して操作を行うこと。
1,クラスを定義
2,オブジェクトを生成 (newキーワード)
3,オブジェクトを参照してフィールドやメソッドにアクセス
変数名. メンバ変数名
または
変数名. メンバメソッド名()
カプセル化
オブジェクトの属性と関連する操作をまとめて保持すること。
クラス定義の際に、オブジェクトのデータとなるメンバ変数と、そのデータを処理するためのメソッドを一つのクラスに記述することで実現。
アクセス修飾子としてのメンバ変数はprivate、メソッドはpublicを指定。
オーバーロード
クラス内に名前が同じで、引数リストの定義が異なるメソッドを複数定義すること。
シグネチャ
メソッド名と引数リストの組み合わせ
public void printItem(String s) {}
printItemとString sがシグネチャ
コンストラクタ
newキーワードによるインスタンス化のときのみに呼ばれる、オブジェクトの初期化を行う仕組み
記述ルール
・クラスメイト同じ名前で宣言
・戻り値の型宣言は行わない
・引数の引き取りが可能
・オーバーロードが可能
[ 修飾子 ] クラス名 (引数リスト) {オブジェクトの初期化処理}
staticメンバ
・staticメンバ(クラス変数)
・staticメソッド(クラスメソッド)
クラスに所属するメンバ
インスタンスメンバ
・インスタンス変数
・インスタンスメソッド
オブジェクトごとに生成されるメンバ
staticメンバへのアクセス
staticメンバはインスタンス化せずに使用するためクラス名でアクセスします。
クラス名.static 変数名
クラス名.static メソッド名()
オブジェクトのライフサイクル
オブジェクトが生成されてから破棄されるまでの期間のこと