※前回の講座がまだの人はこちらから
【Java入門⑥】配列 ~初心者でも安心!基礎から学べるプログラミング講座~
クラスとは
何かしら物を作る時、何も見ずにいきなり作り始めることはないと思います。作る前に、まずは物の設計図を作成すると思います。
クラスとは、その設計図の様な役割を持っていて、処理やデータを組み合わせた構造のことです。
クラスを使うことで、物の大量生産や、部分的に違う機能を持つ物の作成が容易になります。
プログラムにおいて、クラス自体は実体を持たず、インスタンス化という手順を踏むことで、物の作成が可能になります。
クラスの作成
Javaにおいて、クラスは以下の形で作成可能です。
public class クラス名{
アクセス修飾子 型 メンバ変数名;
}
任意のクラス名を指定し、クラス内で使いたい変数を宣言できます。
クラス内で使う変数のことをメンバ変数と言います。
メンバ変数には、型に加えて、アクセス修飾子を付けます。
アクセス修飾子とは、メンバ変数がどこからアクセス出来るかを限定する為の物です。
※アクセス修飾子に関しては、以下の記事で解説しています。
【Java入門⑧】カプセル化 ~初心者でも安心!基礎から学べるプログラミング講座~
車を作るためにCarクラスを作成してみます。
車のモデル名や燃料を保存するために、それぞれメンバ変数を用意します。
<使用例>
public class Car { //モデルを表すメンバ変数model public String model; //車高を表すメンバ変数height public int height; //車幅を表すメンバ変数width public int width; //燃料を表すメンバ変数fuel public int fuel; }
※publicがアクセス修飾子の一つです。
インスタンスの作成
クラスを作成しただけでは、設計図を作っただけなので意味がありません。実際にクラスを使って、物を作ってみます。
冒頭で少し触れた、インスタンス化を行うことで、実体を作ることができます。
クラス名 インスタンス変数名 = new クラス名();
今までの変数の宣言と似た感じだと思ってください。
型を指定していた部分にクラス名を指定するイメージです。
Car car1 = new Car();
インスタンス化したら、メンバ変数を使用してみます。
今までの変数と同じで、メンバ変数に値を代入したり、値を参照できます。
しかし、書き方が少し違い、インスタンス変数をつける必要があります。
インスタンス変数.メンバ変数名
car1.model = "car model"; System.out.println(car1.model);
car1というインスタンスの、modelというメンバ変数に、「car model」という文字列を代入し、表示させました。
<使用例>
public class CarApp { public static void main(String[] args) { Car car1 = new Car(); Car car2 = new Car(); car1.model = "車1号"; car1.height = 1400; car1.width = 1600; car1.fuel = 90; car2.model = "車2号"; car2.height = 1900; car2.width = 1800; car2.fuel = 100; System.out.println("*" + car1.model + "の詳細*"); System.out.println("モデル名:" + car1.model); System.out.println("車高 :" + car1.height); System.out.println("車幅 :" + car1.width); System.out.println("燃料容量:" + car1.fuel); System.out.println("*" + car2.model + "の詳細*"); System.out.println("モデル名:" + car2.model); System.out.println("車高 :" + car2.height); System.out.println("車幅 :" + car2.width); System.out.println("燃料容量:" + car2.fuel); } }
※コンパイル・実行するときはCarAppを指定します。
まとめ
クラスは非常に重要な部分になります。
大きなシステムになればなるほど、様々なクラスを作成し、色々な箇所で使用しています。
まずは、Carクラスの様に簡単なクラスを作成し、慣れることから始めてみてください。