Javaの基本文法のうち、クラスとオブジェクトについて説明します。
クラスとは
今までサンプルプログラムを記述してきましたがすべてクラスを作成してきました。Javaプログラミングをする上でなくてはならないものがクラスです。
1 2 3 | public class Sample { .... } |
クラス名はSampleです。
クラスは以下を持つことが出来ます。
番号 | 役割 | 意味 |
---|---|---|
① | メンバ変数 | クラス内で共通的に利用する変数 |
② | コンストラクタ | 初期化処理を記述 |
③ | メソッド | 具体的な処理を記述 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class Sample { //①メンバ変数 private String msg; //②コンストラクタ public Sample() { msg = "Hello World" ; } //③メソッド public void disp() { System.out.println(msg); } } |
クラスですが、他のクラスから利用できるようにするためにはオブジェクト化(又はインスタンス化とも言います)する必要があります。オブジェクト化するにはnew演算子を利用します。
1 | クラス名 変数名 = new クラス名(); |
引数を取るコンストラクタを定義した場合は、下記のように適時必要な引数を渡してください。
1 | クラス名 変数名 = new クラス名( "引数1" , "引数2" , "引数3" ); |
オブジェクトとは何か?
オブジェクトとはクラスを具体化したものです。もう少し言うと、クラスは設計図でオブジェクトは設計図から作成したものです。
例えば「Car」というクラスがあります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | public class Car { private String color; private int totalDrive; public Car(String color) { this .color= color; } public void drive( int kilometer) { System.out.println(color + "色の車を" + kilometer + "Km運転します" ); this .totalDrive = this .totalDrive + kilometer; } public void showTotalDrive() { System.out.println( this .color + "色の車の走行距離距は" + this .totalDrive + "Kmです" ); } } |
Carという設計書から赤色の車と青色の車を作りそれぞれ運転させるサンプルを考えます。イメージは下図です。
Carクラスを利用すには他のクラスからオブジェクト化する必要がありますのでMainクラスを用意し、オブジェクト化します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class Main { public static void main(String[] args) { //redCarという名前でオブジェクトが出来た Car redCar = new Car( "赤" ); //blueCarという名前でオブジェクトが出来た Car blueCar = new Car( "青" ); //運転 redCar.drive( 10 ); //赤い車を10Km運転 blueCar.drive( 5 ); //青い車を5Km運転 redCar.drive( 5 ); //赤い車を5Km運転 //走行距離距離を表示 redCar.showTotalDrive(); blueCar.showTotalDrive(); } } |
実行結果
赤色の車を10Km運転します
青色の車を5Km運転します
赤色の車を5Km運転します
赤色の車の走行距離距は15Kmです
青色の車の走行距離距は5Kmです
以上のようにクラスは1つでもnew演算子を使ってオブジェクト化したものは以降別物として扱われます。お互い干渉せず独立して動作します。これこそがオブジェクトです。