代码如下:public class Shiyan2 {int a;buwei d;void b(){System.out.println(d);}public static void main(String[] args) {Shiyan2 c1 = new Shiyan2();c1.a=15;buwei c2 = new buwei();c2.c=169;c1.b();}}class buwei{int c;}
为什么加上之后就输出
这个啊
因为你输出的d是一个对象,输出一个对象的默认行为是调用此对象所属类的 toString方法将其转换为一个字符串。而类buwei并没有复写Object类的toString方法,所以调用的是继承自Object类的toString方法。而Object类的toString方法返回的字符串是这样组成的:包名.类名@对象的16进制哈希码。这里sunxx是包名,buwei是对象d所属的类名,@后面是d的16进制哈希码。