Java中覆盖toString()

 
覆盖 toString()
Object 类具有一个 toString() 方法,您创建的每个类都会继承该方法。它返回您的对象的一个 String 表示,并且对于调试非常有帮助。为了来看 toString() 的默认实现做些什么,请在 main() 中尝试这一体验:

public static void main(String[] args) {
         Adult myAdult = new Adult();
        
         myAdult.addMoney(1);
         myAdult.addmoney(5);
        
         System.out.println(myAdult);
}
 
我们将会在控制台中得到的结果看起来像下面这样:
intro.core.Adult@b108475c 
println() 方法在传递给它的对象上调用 toString()。因为还没有覆盖 toString(),所以得到默认的输出,即一个对象 ID。每个对象都有一个 ID,但是这并没有告诉您关于对象的太多信息。如果我们覆盖了 toString(),以便给我们提供关于 Adult 的信息的一个格式良好的形象描述,那么将会更好一些:

public String toString() {
         StringBuffer buffer = new StringBuffer();

         buffer.append("And Adult with: " + "\n");
         buffer.append("Age: " + age + "\n");
         buffer.append("Name: " + getName() + "\n");
         buffer.append("Race: " + getRace() + "\n");
         buffer.append("Gender: " + getGender() + "\n");
         buffer.append("Progress: " + getProgress() + "\n");
         buffer.append("Wallet: " + getWallet());
        
         return buffer.toString();
}
 
创建一个 StringBuffer 以构建对象的一个 String 表示,然后返回该 String。当重新运行时,控制台应该显示一些像下面这样的好的输出:

An Adult with: 
Age: 25
Name: firstname lastname
Race: inuit
Gender: male
Progress: 0
Wallet: [1, 5]
 
这比一个隐含的对象 ID 要方便且有用得多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值