こんにちは、今日もいい天気ですが花粉キッツ~~~~
昨日の続き Java chapter12 メソッド まとめ 後編 です。
今度は値を返すメソッドについてやっていきます。
3.値を返すメソッド
値を返すメソッドとは、
double kazu=Math.sqrt(100);
上のような処理結果を受け取ることのできるメソッドです。
package exercise;
public class Sample_sample3 {
public static void main(String[] args) {
System.out.println("***三角形の面積の計算***");
double kaku = getzukei(15,30);
System.out.println("三角形の面積は"+kaku+"です。");
System.out.println("***三角形の面積計算終了***");
}
public static double getzukei(double ion,double height) {
double zukei= (ion * height)/2;
return zukei;
}
}
上のがプログラムですが、
double zukei= (ion * height)/2;
ここが計算式です。
呼び出し側のメソッドに渡す値を戻り値という
戻り値は return文 を使って指定します。
上の図がその説明です。
実行結果はこんな感じです。
この様になります。
最後に戻り値のあるメソッドの注意事項について説明しておきます。
★戻り値のあるメソッドの注意事項
① 返す方の値に応じて、適切な戻り値型をメソッドに書く
② 今回は使用していないが void は 値を返さないという意味
次にメソッドのオーバーロードについて説明していきます。
4.メソッドのオーバーロード
Java言語では同じ名前のメソッドでも、引数構成(引数の数、型、並び順)
が違えばいくつでも作ることができます。
1.オーバーロード
オーバーロードとは、引数構成(引数の数、型、並び順)が違えば、メソッド名は同じにしていいという規則。
では、次のような台形の面積を求めてみます。
プログラムで書くと
package exercise;
public class Sample_sample4 {
public static void main(String[] args) {
System.out.println(trapezoid(1));
System.out.println(trapezoid(1,2));
}
public static double trapezoid(double a) {
return ((48+25)*5)/2;
}
public static double trapezoid(double a,double b) {
return ((2+8)*5)/2;// ここにコードを挿入
}
}
こんな感じになりますwww
実行結果はこんな感じです。
2.オーバーロードの条件
一般的に、引数の型、数、並び順を 引数の構成 と呼ぶ。
メソッドの名前と引数構成を合わせて シグニチャ ということもある。
最後にメソッドのオーバーロードの規則について・・・・
メソッドのオーバーロードの規則
①引数構成(引数の数、型、並び順)がメソッドごとに異なる
②戻り値型が違うだけではオーバーロードにならない
③引数の名前が違うだけではオーバーロードにならない
④メソッドのアクセス修飾子が違うだけではオーバーロードにならない
と、まあこんなところです。
最後に、複数のメソッドを持つクラスを見ていきます
5.複数のメソッドを持つクラス
次のプログラムは段階的詳細化を行ったプログラムです。
package exercise;
import lib. Input;
public class Sample_sample5 {
public static void main(String[] args) {
disptitle();
String name=Input.getString("名前");
int time=Input.getInt("時間");
String evald=toEvald(time);
dispResult(name,time,evald);
}
public static void disptitle() {
System.out.println("経過時間からの評価の変換");
}
public static String toEvald(int time) {
String evald;
if(time<3600) {
evald="SS";
}else if(time<4000) {
evald="A";
}else if(time<5000) {
evald="B";
}else if(time<6000) {
evald="C";
}else {
evald="D";
}
return evald;
}
public static void dispResult(String name,int time,String evald) {
System.out.println(name+"経過時間からの評価は"+evald+"("+time+"です");
}
}
実行すると上の様になります。
続いてSPD
青い矢印先の四角は メソッド呼び出し を表しています。
メソッドの中で宣言した変数や引数は、そのメソッドのなかっだけで有効な変数で、
ローカル変数 といいます。
ここまでご覧いただきありがとうございました。
BY マんタ
参考書は__________________________________
川場 隆 Kawaba Takashi
秀和システム