【独学Java入門⑮】メソッド

メソッドとはオブジェクトに行う処理のことです。Pythonではメソッドよりも先に関数をご紹介しましたが今回はメソッドのみをまずはご説明させて頂きます。

まずは引数戻り値という2つの重要な用語について解説します。

「y = 2x」という数学の関数を例にすると関数に与えるxによって結果であるyが変化します。プログラミングでこのxに相当する「関数に与える変数を引数」、yに相当する「関数で計算された結果を戻り値」と呼びます。引数と戻り値は重要なキーワードなのでまずご理解をお願いします。

前回、ライザップに入会した太郎さんを例にメソッドをご説明します。

おさらいですが、未記入の入会申込書がクラス、太郎さんが自分の身長や体重などのデータ(プロパティ)を記入して具体的になったものがインスタンス(オブジェクト)でした。

太郎さんはどのくらい減量したいかによってコースを選択します。太郎さんは標準コースを選びました。このコース(メソッド)は入会申込書(クラス)にしっかりと記載されています。すなわちクラスの宣言の中でメソッドを定義する必要があります。

コースメソッド
軽め5%減wt * 0.95
標準10%減wt * 0.9
ハード20%減wt * 0.8

前回のソースコードに体重を0.9倍にする「rizap」というメソッドを追加して動作させてみます。最後にPythonとの比較もしてみます。

//クラスの定義
class human
{
    String name;
    float ht;
    float wt;
    int age;

//メソッドを追加
    float rizap()
    {		
        return wt * 0.9f; //floatの小数は最後にf
    }
}

//taro_rizapに変更
class taro_rizap
{
    public static void main (String args[]) {

        //インスタンス化
        human taro = new human();
        taro.name = "taro";
        taro.ht = 170;
        taro.wt = 60;
        taro.age = 35;
  
        System.out.println(taro.age);
        System.out.println(taro.ht);
        System.out.println(taro.wt);
        System.out.println(taro.rizap());		
    }
}

//コメントはコピーペーストしないでください
//または-encoding utf-8をつけて
//コンパイルしてください
//右が切れたら左にスワイプしてください

今回は日本語のコメントがあってもエラーが発生しない方法でコンパイルしてみました。それではメソッドの定義についてご説明します。

戻り値のデータ型  メソッド名()
{		
    処理1
   ・
   ・
   ・    
    return 戻り値;
}

//戻り値のがない場合はreturnの記述は不要
//その場合は最初の戻り値のデータ型はvoid

//メソッドを使用する場合
変数名.メソッド名()

//引数がある場合は()の中に記入

//右が切れたら左にスワイプしてください

次に体重を0.9倍にするメソッドの定義をPythonとJavaで比較します。Pythonをまだ学習されていない方は飛ばしてもらってもOKです。

//Pythonでのメソッドの定義
def rizap(self):   //先頭はdef
    return self.wt * 0.9


//Javaでのメソッドの定義
float rizap()     //先頭は戻り値のデータ型
{		
    return wt * 0.9f;  //最後にf
}

//右が切れたら左にスワイプしてください

並べてみると似ているようでだいぶ違いますね。まず、JavaではPythonで使用していたselfを記述する必要がありません。Javaにはselfと似た考え方にthisというものがありますが、今回は省略します。

また、0.9の後に「f」がついています。これは小数にfをつけるとfloat型、fがないとdouble型を表すというルールになっているためです。そのため今回の例ではfがないとエラーになります。とりあえず、現時点ではfloat型では最後にfをつけるとだけ覚えてもらえればと思います。

独学Java入門一覧に戻る