みなさん こんにちは。
ときです。>∩(・ω・)∩<
最近java研修を振り返っていると、クラス、メソッドなどデータや処理を入れ込む箱がいっぱいありすぎて戸惑っています。あっちの箱に入れて、こっちの箱で取り出して…… 前にも書いたかもしれませんが、javaのプログラムはマトリョーシカみたいです。
さて、本日も研修を振り返ります。本日の話はまたまた、処理を入れ込むための箱、クラスのお話です。
・クラスの使い方
<span style="color: #ff0000;">public class JavaTest{ public static void main(String[] args){ //インスタンス AddNumber addNumber = new AddNumber(); System.out.println(addNumber.returnNumber(5)); } }//ここまでJavaTestクラス</span> <span style="color: #3366ff;">class AddNumber{ //フィールド int num1=10; //メソッド public int returnNumber(int mainNumber){ num1 = num1 + mainNumber; return num1; } }//ここまでAddNumberクラス</span>
赤く塗ったところ、青く塗ったところがそれぞれクラスです。クラスごとに色を変えてみました!クラスもメソッドと同様に、中かっこ{}で囲んだ部分がクラスの範囲になります。(名前の付け方が微妙なのは、ご容赦ください)
そして、今まで使っていたメソッドは、クラスの範囲内でしか宣言することができません。ここ以外で宣言しようとすると、エラーが起きてプログラムがコンパイル(作成)されなくなってしまいます。
また、クラスの中には、そのクラス内で共通する変数フィールドを宣言できるとのことです。
上で書いたコードの5行目で行っていることがインスタンスです。
インスタンスは、こんな書き方をします。
クラス名(自分で作れるデータ型になる) 変数名 = new クラス名();
このインスタンスをすることで、別のクラスの情報を呼び出すことができるようになるそうです。6行目ではインスタンスで作った変数を使って、AddNumberクラスのメソッドを呼び出しています。
インスタンスは「金型を作って、実態を呼び起こす」ための準備とwebでよく説明されますが、webの説明だとさっぱりわかりませんでした。
「インスタンスした型を使って、何回も同じハンコを押すイメージ」と講義で教わってなんとなくニュアンスをつかめたので、助かりました…
webの説明などを少し読んでから講義を受けているのですが、やっぱりwebの説明は言葉足らずなのか、僕の理解力が乏しいせいか「?」が頭に浮かぶことが結構あります。
上のコードで言えば、インスタンスで作った ”addNumber.returnNumber(引数)“を コードの中に書き込めば、「10+引数」の結果を得ることができるわけです。しかも、書き込んだらそのたびに、結果だけもらえるわけです!
「インスタンスで作ったものを書く→結果を得る」という流れですが、この書く部分がハンコを押す、結果を得るがハンコがくっきり移っている状態に相当すると思います。
なので、インスタンスをなんとなくの言葉で言い換えれば、「ハンコ作るぜ~、超押すぜ~!」な概念のようです。
ただ、ハンコを押せるのは便利ですけど、ハンコの名前が意味不明だったり、見当もつかない名前だとハンコを押すときに「これ何やってるんだっけ?」な状態になったりしていて、自分のセンスのなさに落胆しています。そろそろ、ネーミングセンスを磨いていかないとなぁ・・・
僕は最近、ネーミングセンス・文章の読解力アップのためと称して、「とらドラ!」を読んでいます。(2巻まで読み終えました!)
「いや、もっと別の本を読んだほうがいいでしょ!」
「この本を読むのがおすすめだよ!」
そんなことを思った方がいましたら、こっそり教えてください!
では、また!