gpt4 book ai didi

java - 仅通过引用对象来获取值

转载 作者:行者123 更新时间:2023-12-02 02:06:16 27 4
gpt4 key购买 nike

有时我们仅通过引用对象的名称就可以从对象中获取值,这是怎么回事?

示例:

class Abc {
int a=0;
char b='a';

void tellDetails()
{ return a; }

void main(){
Abc obj=new Abc();
Date d1=new Date();
System.out.println(obj.a);
System.out.println(d1); }

正如您所见,对于对象“obj”,我需要使用点运算符并引用字段/方法,但对于“日期”对象,我可以直接使用对象名称/引用“d1”而不附加任何字段/方法。为什么会这样呢?

最佳答案

每个java类都有一个toString方法。 toString方法定义在Object类中,由于所有java类都是Object类的子类,因此每个java类都有一个toString函数。

当我们尝试打印一个对象时,实际上会调用该类的 toString 方法,该方法返回一个字符串并打印该字符串。

在您的情况下,当您打印 Date 类的对象时,会调用 date 类的 toString 方法。

你也可以用你的对象尝试这个,只需写

System.out.println(obj);

你将看到的是一个你无法理解的字符串。如果您想自定义 toString 方法,则可以按如下方式重写它。

    class Abc {
int a=0;
char b='a';

void tellDetails()
{
return a;
}
@Override
public String toString()
{
return "a="+a+" b="+b;
}
void main(){
Abc obj=new Abc();
Date d1=new Date();
System.out.println(obj.a);
System.out.println(d1);
}



}

当你打印ABC类的对象时,上面的代码将打印a和b的值

关于java - 仅通过引用对象来获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50754463/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com