Вызов функции по новому ключевому слову - PullRequest
0 голосов
/ 28 сентября 2019

Это мой код:

import java.util.Date;

class basic {
    public static void main(String[] args) throws IOException {
        String s = new Date().toString();
        System.out.println(s);
        System.exit(0);
    }
}

Может кто-нибудь объяснить мне подробно, как строка new Date().toString(); исполняется JVM.Меня не очень интересует, как new выделяет кучу, но как мы можем использовать оператор .toString() в конструкторе Date().Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 28 сентября 2019

Будет проще понять, если мы разделим код на пару строк и введем локальные переменные.Эта строка:

String s = new Date().toString();

То же, что и:

Date d = new Date();
String s = d.toString();

Теперь вы видите, мы вызываем метод toString() для экземпляра Date класс, а не на самом конструкторе.

2 голосов
/ 28 сентября 2019

new Date().toString(); интерпретируется компилятором Java как (new Date()).toString().Который такой же как Date a = new Date(); a.toString();

0 голосов
/ 28 сентября 2019
new Date().toString(); 

компилируется как новый метод объекта date, в котором мы устанавливаем значения с помощью метода toString.

То же, что и Date a = new Date ();a.toString ();

...