今日のプログラム

とりあえず、プログラムソース(くさばさんの引用)

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型に変更されて、暗黙の変形型になるみたいです。今回は意味解らなかったです。自分まだまだ未熟。これから頑張ろうと思ったけど、受験・・・・・くさばさんすいません。かなりスローペースになると思いますが、よろしくお願いします。