クラスとメソッドの作成義
では、実際に簡単なクラスを作成しながら、クラスとインスタンスを理解していくことにしましょう。ここでは、自分の情報を管理する「MyObject」というクラスを作り、それを利用してみます。
public class Sample {
public static void main(String[] args){
MyObject object = new MyObject();
object.setName("たろう");
String s = object.getName();
System.out.println("名前は、" + s + "です。");
}
}
class MyObject {
String name;
public void setName(String str){
name = str;
}
public String getName(){
return name;
}
}
プログラムを実行すると、MyObjectインスタンスからnameを取り出して表示します。 |
これはまとめて「Sample.java」というファイルに記述してコンパイルをします。「MyObjectというクラスも一緒に書いてしまっていいの?」と思うかもしれませんが、いいのです。Javaは「クラスの名前とファイルの名前が同じ」だと前にいいましたが、これは正確には「publicクラスと同じ」でないといけない、ということなのです。publicクラスとは、最初に「public」というのがついたクラスのこと。これは「他のどこからも利用できるクラス」という意味です。
さて、ここではMyObjectの中に「name」というStringのフィールドと、「setName」「getName」という2つのメソッドを作りました。nameは名前を保管しておくためのもので、2つのメソッドはnameに値を設定したり、nameの値を取り出したりするためのものです。今までmainというメソッドを使ったことはありましたが、自分でメソッドを作って利用したことはありませんでしたね。メソッドというのは、以下のような形で定義をします。
[修飾子] 返値 メソッド名 ( 引数 ){
・・・実行する処理・・・
}
●修飾子
最初の修飾子というのは、mainにある「public」や「static」といったもののことで、そのメソッドの性質などを現すものです。これはない場合もありますし、複数のものがついている場合もあります。まぁ、まだ「修飾子とは何か?」ということはよくわからないでしょうから、「そういうものがついている場合もある」程度に考えておいてください。1つだけ「publicというのがついていると、どこからでも利用できる性質になる」ということだけ覚えておけば十分でしょう。
●返値
次の「返値(かえりち)」は、「そのメソッドを実行後、どのような種類の値を呼び出しもとに返すか」を示すものです。たとえば、ここでは「getName」はStringというのが返値に指定されていますね。ということは、このメソッドは実行後にStringの値(テキスト)を返す、ということです。「返す」というのがわかりにくければ、「Stringの値が得られる」といってもよいでしょう。またsetNameでは「void」というものが指定されていますね? このvoidというのは「返す値がない(何も返さない)」場合に指定するものです。
●メソッド名
「メソッド名」は、文字通りメソッドの名前です。これは原則として「半角の英数字による1単語」の名前をつけることになっています。ただし、最初の1文字目は数字で始まるものではいけません。必ずアルファベットから始まる必要があります。
●引数
これは、メソッドを呼び出す際に必要な値を受け渡すのに用意するものです。例えば、setNameでは「String str」というのが設定されていますね? これは「Stringの値をstrという名前の変数に入れて渡します」ということを意味していたのです。もちろん、特に渡す値などがなければ引数はなしでOKです。ただし、この場合もカッコだけはつけないとだめです。