今日のプログラム
とりあえず、プログラムソース(くさばさんの引用)
01:public class Test { 02: 03: public static void main(String[] args) throws Exception { 04: System.out.println(add(10.0,20.0)); 05: System.out.println(add("10.0","20")); 06: System.out.println(add(10,20)); 07: System.out.println(add(10,20.0)); 08: System.out.println(add(10.0,20)); 09: System.out.println(add("10","20")); 10: 11: } 12: 13: public static int add(int args1, int args2) { 14: System.out.println("int型"); 15: int result = args1 + args2; 16: return result; 17: } 18: 19: public static double add(double args1, double args2) { 20: System.out.println("double型"); 21: double result = args1 + args2; 22: return result; 23: } 24: 25: public static double add(String args1, String args2) { 26: System.out.println("String型"); 27: double temp1 = Double.parseDouble(args1); 28: double temp2 = Double.parseDouble(args2); 29: double result = temp1 + temp2; 30: return result; 31: } 32: 33:}
今日は実際にはやらないのですが、くさばさんの解説で大分解るようになってきました。しかし自分が変な風に考えていたなんて、他の人には言えません。最初私は二つを足すのかとてっきり思っていました。例を出すと、System.out.println(add(10.0,20.0));
とSystem.out.println(add("10.0","20"));を
public static int add(int args1, int args2) { System.out.println("int型"); int result = args1 + args2; return result;
これで足すのかと思っていました。その前に問題があります。これはdouble型とString型なので、int型ではないです。すいません本当に・・・・例なので許してください。実際はこうでした(くさばさんのを引用)次に、System.out.println(add(10,20));が実行されます。同様にadd(10,20)が実行されます。引数の型はint型なので13行目いかが実行されます。
まず、「int型」と表示され戻り値として30が返されます。よって、30と表示されます。ここは普通・・・・しかしSystem.out.println(add("10.0","20"));これによりdouble型に変更されて、暗黙の変形型になるみたいです。今回は意味解らなかったです。自分まだまだ未熟。これから頑張ろうと思ったけど、受験・・・・・くさばさんすいません。かなりスローペースになると思いますが、よろしくお願いします。