クラスを作ってみよう
教授?
Javaのクラスって何ですか?
Javaのプログラムに動かす時の「器」になりますよ?
例えば、教授の乗り物である「もけもけ」のクラスを作ってみましょう。
public class Mokemoke{
public String color;
public String size;
public void figure(){
//姿
System.out.println(color + "くて" + size +"大きい");
}
public void eat(String food){
//食べる
System.out.println(food + "もけもけ");
}
public static String fireball(){
//火の玉攻撃
String fireball = "ふぁいあー";
return fireball;
}
}
ひえぇっ!!
これは、どこからどこまでがクラスなんですか?
クラスとは?
クラスですか?
クラスだけで言うなら、こんな感じです。
public class Mokemoke{
}
あれ?
ずいぶんシンプルになりましたね。
クラスというのは、変数やメソッドを入れておく器(うつわ)です。
つまり、今のクラスは中身が空だから、こんなにもシンプルになっているのですね。
その通りです。
クラスと変数
クラスというのは、器ですよね?
じゃあ、中身の変数やメソッドって何ですか?
では、クラスに変数を入れた状態にしてみますね。
public class Mokemoke{
public String color;
public String size:
}
何やら3行ほど増えていますね。
その3行が変数の部分です。
変数は、「可視性」+「型」+「変数名」; というように宣言します。
また、変数名の最初は小文字にします。
へぇー。
じゃあ、Mokemokeというのは変数名ではないんですね?
その通り。
Mokemokeは、クラス名です。
クラスは、「可視性」+ class +「クラス名」{} というように宣言します。
また、クラス名の最初は大文字にします。
「可視性」や「型」については、また後日の説明にします。
クラスとメソッド
クラスにメソッド部分を入れると次のようになります。
public class Mokemoke{
public void figure(){
//姿
System.out.println(color + "くて" + size +"大きい");
}
public void eat(String food){
//食べる
System.out.println(food + "もけもけ");
}
public static String fireball(){
//火の玉攻撃
String fireball = "ふぁいあー";
return fireball;
}
}
System.out.println の部分はどこかで見たことがありますね。
以前、説明していますよ?
そういえば、そうでしたね。
じゃあ、文字列を表示させるという意味でいいんですか?
そうです。
メソッドは、「可視性」+「戻り値の型」+「メソッド名」+(「引数」){「処理」}というように宣言します。
ということは……2行目だと
public 「可視性」
void 「戻り値の型」
move 「メソッド名」
という、当てはめ方で良いのですか?
そうなりますね。
ちなみに、()の中に何も書いていない時は、引数が無いということになります。
また、引数は「引数の型」+「引数名」という書き方になります。
public void eat(String food) の部分で言うと、String foodが引数ですね。
Stringが「引数の型」で、footが「引数名」ですよね?
でも、public String fireball() のところは、「戻り値の型」が違うのですか?
その通りです。
「戻り値の型」が void の時は、戻り値が無いという意味になります。
また、「戻り値の型」が String の場合は、戻り値の型が文字列型であるという意味です。
return fireball; というところで、戻り値である文字列、「ふぁいあー」を返します。
戻り値の設定は、return+「戻り値」としますよ。
クラスの使い方
なんていうか、結局クラスって何をするためのものなんですか?
クラスは「器」であると言いました。
その器に、何らかの要素を表す「変数」や動きを表現する「メソッド」を入れておきます。
そして、インスタンス化することによって使います。
その説明があるまで、しばらくお待ちください、です。
それは、また別のお話、というわけですね?
そんな感じです。