java菜鸟求助,在调用另一个类的变量时为什么返回值为null

代码如下: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;}

buwei d;d从未赋值,当然是默认值null。
在13行的下面加上:
c1.d=c2;
为c1的d赋值。追问

大神说的应该是没有错的

为什么加上之后就输出

这个啊

追答

因为你输出的d是一个对象,输出一个对象的默认行为是调用此对象所属类的 toString方法将其转换为一个字符串。而类buwei并没有复写Object类的toString方法,所以调用的是继承自Object类的toString方法。而Object类的toString方法返回的字符串是这样组成的:包名.类名@对象的16进制哈希码。这里sunxx是包名,buwei是对象d所属的类名,@后面是d的16进制哈希码。

温馨提示:答案为网友推荐,仅供参考
相似回答