输出integer创建的对象,为啥不是地址值
1条回答 默认 最新
- EatingSoilLang 2020-11-09 05:58关注
因为Integer类里重写了toString方法。点进去看一下源码就明白了。
public class DemoCSDN { public static void main(String[] args) { A a = new A(); a.setName("zhangsan"); a.setAdress("nanjing"); System.out.println(a);//如果重写了toString,控制台打印:A{name='zhangsan', adress='nanjing'},否则打印:com.company.A@610455d6 //Integer类里重写了toString方法。如下: /* public static String toString(int i, int radix) { if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX) radix = 10; Use the faster version if (radix == 10) { return toString(i); } char buf[] = new char[33]; boolean negative = (i < 0); int charPos = 32; if (!negative) { i = -i; } while (i <= -radix) { buf[charPos--] = digits[-(i % radix)]; i = i / radix; } buf[charPos] = digits[-i]; if (negative) { buf[--charPos] = '-'; } return new String(buf, charPos, (33 - charPos)); } * */ } } class A{ String name ; String adress; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAdress() { return adress; } public void setAdress(String adress) { this.adress = adress; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用