概要
以前、クラスとインスタンスの違いでクラスについて簡単に触れました。
ここではクラスの内容を掘り下げて説明していきます。
クラスの構成
クラスの基本構成は以下の3つです。
・フィールド :クラス内で保持する変数です。
・メソッド :クラスが持つ機能です。
・コンストラクタ:クラスの初期化(インスタンス生成)の定義です。
フィールドとメソッドのことを「メンバ」とも言います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public class Sample { // フィールド private int num; private String name; // コンストラクタ public Sample() {}; // デフォルトコンストラクタ public Sample(int num, String name) { this.num = num; this.name = name; }; // メソッド public int num() { return this.num; } public String name() { return this.name; } } |
引数と処理を何も持たないコンストラクタをデフォルトコンストラクタと言います。
コンストラクタは複数定義することが可能です。
抽象クラス
抽象クラスは他のクラスを共通化させたいときに主に使用します。
抽象クラスでは以下を扱うことができます。
・フィールド
・抽象メソッド
・具象メソッド
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public abstract class AbstractSample { // フィールド private int num; // コンストラクタ protected AbstractSample(int num) { this.num = num; } // 抽象メソッド public abstract String str(); // 具象メソッド public int num() { return this.num; } } |
抽象クラス、抽象メソッドには「abstract」を付けます。
抽象クラスは処理内容はありません。
これは継承させるクラスで実装を要求するものだからです。
具象メソッドは実際の処理内容が記述できます。
抽象クラスで定義された具象メソッドは、継承先のクラスでも使うことができます。
具象クラス
具象クラスとは、#クラスの構成で示したような、処理内容の実体があるクラスです。
abstractでないクラスと考えればよいです。
具象クラスは実際の処理を記述するクラスになるため、抽象クラスと違って抽象メソッドを定義できません。
まとめ
- クラスはフィールド、メソッド、コンストラクタを持つことができる。
- 抽象クラスは処理を共通化するためによく使われる。
- 抽象メソッドには実装がなく、継承先のクラスで実装を要求する。
- 具象クラスは処理内容の実体があるクラスである。
コメント