Прежде всего вы должны знать, что Класс объекта является матерью всех классов Java, включая все их методы.Одним из них является toString () , которое возвращает строковое представление объекта.Как вы могли заметить, печать obj
возвращает classname + @ + hashcode
(реализацию класса объекта) объектов, например: Abc@7852e922
Но это не то, что нам нужно.Это зависит от реализации и требований, но в большинстве случаев вам понадобятся атрибуты объекта с соответствующими им значениями.
Примером в этом случае может быть:
Класс Abc:
import java.util.Date;
public class Abc {
int a = 0;
char b = 'a';
int tellDetails() {
return a;
}
public static void main(String[] args) {
Abc obj = new Abc();
Date d1 = new Date();
System.out.println(obj);
System.out.println(d1);
}
@Override
public String toString() {
return "Abc [a=" + a + ", b=" + b + "]";
}
}
Примечание: обратите внимание на аннотацию @Override
, выдающую следующий вывод:
Abc [a=0, b=a]
Fri Jun 08 03:02:27 CLT 2018
Но теперь: Как это работает для даты по умолчанию? .Потому что уже переопределено в классе Date .который преобразует этот объект Date в строку вида:
dow mon dd hh:mm:ss zzz yyyy
. Поэтому System.out.println(d1);
работает по умолчанию.