Mohibur Rashid
Что ж, похоже, вы ошиблись.
Вопрос: почему вы должны угадывать? Почему вы не можете скомпилировать и посмотреть, каков фактический результат, и попытаться выяснить, почему вы получаете то, что получаете?
В простых словах:
в случае
System.out.println (a + b + y + z); // first parameter in the equation is string, all the other parameters afterward was converted into string
Systemout.println(y + z + a + b); // first two parameters are number, from a to rest was converted to string, since a is string.
Вот такой тест
public class Main2 {
public static void main(String []strings) {
String a = "6";
double y = 7.1;
int b = 10, z = 4;
TestClass t = new TestClass();
TestClass t2 = new TestClass();
System.out.println(t);
System.out.println(t + a);
System.out.println(b + t.toString()); // System.out.println(b + t); Compiler will reject, even System.out.println(t + b); will be rejected
System.out.println(t2.toString() + t); // System.out.println(t2 + t); // will fail
}
}
class TestClass {
int i;
int j;
TestClass() {
i = 10;
j=23;
}
@Override
public String toString() {
return String.valueOf(i) + j;
}
}