クラス(Java)
クラスとは
オブジェクトの設計図に相当するもの。オブジェクトが持つ性質や振る舞いを定義する。
次のように記述する。
クラス修飾子 class クラス名 { // フィールドの定義 // コンストラクタの定義 // メソッドの定義 }
- クラス修飾子は省略できる
- クラス名は大文字で始まる
- ファイル名にはクラス名と同じ名前を付ける。
- フィールドが性質
- メソッドが動作
- コンストラクタがオブジェクト生成時の初期化の処理
- クラスのファイル名はクラス名.java
クラス定義の例
たとえば、人間(Human)をクラスで表現するとき、性質として名前(name)、誕生日(birthday)を、動作として食べる(eat)を持たせるとするとクラスは次のように記す。
public class Human { // フィールド定義 private String name; private String birthday; // コンストラクタ定義 public human(String name, String birthday){ this.name = name; this.birthday = birthday; } // メソッド定義 public void eat(){ System.out.println("ご飯を食べました。"); } }
クラス修飾子
クラス修飾子には表に示す修飾子がある。
修飾子 | 役割 |
---|---|
public | どのクラス、パッケージからも参照できる。 |
abstract | 抽象クラスを示す。 |
final | 拡張できないクラス、 |
アクセス修飾子
クラス内のフィールドやメソッドを他のクラスから参照できるか否かを指定する文。
アクセス修飾子には次の4つの文があり、省略した場合はpackage privateが適用される。
可視性 | すべてのクラス | 継承したクラス | 同一パッケージ | 同一クラス |
---|---|---|---|---|
public | ○ | ○ | ○ | ○ |
protected | × | ○ | ○ | ○ |
package | × | × | ○ | ○ |
private | × | × | × | ○ |
フィールド
- フィールドはクラスで表現する対象の性質を表すもの。
- 性質は名詞で表される。
- フィールドは変数と同じと考えて良い。
- フィールドのアクセス修飾子はprivateあるいはpackage privateにする。