是不是在System.out.println(obj1.data);
中系统会自动调用一个toString()的哦
从新定义你的MyObject类的toString()函数试试看有什么不同

解决方案 »

  1.   

    有意思,输出应该调用了toString()吧?修改一下呢,这样:public class Main{
      public static void main(String[] args){
         MyObject obj1 = new MyObject(1,2);
         System.out.println(obj1);   
     // 这里当上面调用构造函数传递的参数改为10以上就出现a,b,c,d之类的,但是对象的输出不是输出其属性的吗?而他的属性只有data啊.不是输出data的值吗?     System.out.println(obj1.data);
     //但是这里为什么又能正常显示呢?  }
    }class MyObject{
      public int data;
       public int data1;
      public MyObject(int i,int j){
        data = i;
    data1=j;
      }
    }
    ===================
    输出的和就一个属性时候是一样的,应该就是调用toString()的问题吧具体为什么是那样的结果呢?谁来说说啊 学ing
      

  2.   

    System.out.println()函数输出时调用了Object的toString方法,如果没有覆写该方法,那么会输出类似内存地址的数据。