はじめに
簡単な自己紹介
名前:Teyo3M
趣味:スキューバダイビング
目的
自分が学んだ知識の深化と同僚の勉強の一助として
クラスについて
Q.クラスって?
A.設計図であり、オブジェクトを作るための型
まずは下記のコードを見てください。
public class PC { //クラス名
int memoryCap; //フィールド
int diskCap; //フィールド
void ShowSpecs() { //メソッド
System.out.println("メモリ容量は" + memoryCap + "です");
System.out.println("ディスク容量は" + diskCap + "です");
}
}
クラスはオブジェクトを作るための設計図であり、そのオブジェクトのデータの型として機能する
もう少し違った説明をするとクラスとは「プログラムに必要な要素やふるまいをまとめながら記述している設計図」です。「車クラス」なら「エンジン、タイヤ、ブレーキ」などの要素と「前進する、後退する、曲がる、止まる」などの振る舞いを持ちます。
役割 | 説明 |
---|---|
フィールド | 名前、年齢、タスクなど |
メソッド | 名前を変更する、年を重ねる、タスクを完了するなど |
クラスを利用する
Q. オブジェクト化って?
A. クラスをもとに実体を作ること
object = 実体
オブジェクト化をするには「インスタンス」を作成する必要があります。
Q. インスタンスって?
A. クラスをもとに作られた実体(オブジェクト)
例えば、上記の PC クラスを使って実際にオブジェクトを作成するには以下のように書きます。
public class Sample {
public static void main(String[] args) {
PC myPC = new PC(); // インスタンスの作成
myPC.memoryCap = 16;
myPC.diskCap = 512;
myPC.ShowSpecs(); // スペックを表示するメソッド
}
}
このコードの流れを整理すると:
PC クラスをもとに myPC というオブジェクトを作成
memoryCap と diskCap に値をセット
ShowSpecs() を呼び出してスペックを表示
new を使うことでクラスからインスタンスを作成する。
Q. インスタンスを作成しないとどうなるの?
A. クラスは設計図のままで、プログラム上で使うことができない。
例えば、以下のコードはエラーになります。
PC.ShowSpecs(); // エラー
クラスはただの設計図なので、そのままでは機能しません。new を使ってインスタンスを作ることで、初めて利用できるようになります。
コンストラクタの活用
オブジェクトを作成するときに、初期値を設定する方法として「コンストラクタ」があります。
public class PC {
int memoryCap;
int diskCap;
// コンストラクタの定義
public PC(int memory, int disk) {
this.memoryCap = memory;
this.diskCap = disk;
}
void ShowSpecs() {
System.out.println("メモリ容量は" + memoryCap + "GBです");
System.out.println("ディスク容量は" + diskCap + "GBです");
}
}
このクラスを使ってオブジェクトを作成する場合、次のようになります。
public class Sample {
public static void main(String[] args) {
PC myPC = new PC(16, 512); // コンストラクタを使用
myPC.ShowSpecs();
}
}
//実行結果
//メモリ容量は16GBです
//ディスク容量は512GBです
コンストラクタを使うことで、オブジェクト生成時に値をセットできる。
まとめ
・クラス は設計図であり、オブジェクトの型になる。
・インスタンス を作成することで、クラスを利用できる。
・new を使ってオブジェクト化 することで、メモリ上に実体が作られる。
・コンストラクタを活用 すると、オブジェクト生成時に初期値を設定できる。