Member 14086054 Ответов: 1

Нужна помощь там, где я ошибаюсь


Предположим, что a = “6” ,b = 7 ,y = 10
и z = 4.
Что печатается следующими двумя утверждениями, S
Системы.из.код println (А + Б + г + з);
Файле systemout.код println(Г + З + А + Б);

Что я уже пробовал:

я предполагаю, что ответ таков
621
1267

Patrice T

Есть простой способ узнать ответ: просто попробуйте.

1 Ответов

Рейтинг:
2

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;
  }
}