黑马程序员技术交流社区

标题: 返回值怎么输出的是字符串? [打印本页]

作者: 杨明宁    时间: 2013-3-17 12:00
标题: 返回值怎么输出的是字符串?
本帖最后由 杨明宁 于 2013-3-17 12:24 编辑
  1. public class Test{
  2. public static void main(String[] args){
  3. Date days[] = {
  4.            new Date(1,3,7),
  5.              new Date(2,3,6),
  6.              new Date(3,4,7)
  7.      };
  8. for(int i = 0;i<days.length;i++){
  9. System.out.println(days[i]);
  10. }
  11. }
  12. public String toString(){
  13.   return "qwe";
  14.   }  
  15. }
  16. class Date{
  17. int year; int month;int day;
  18. Date(int y,int m, int d){
  19. year = y;
  20. month = m;
  21. day = d;

  22. }  

  23. }

  24. 我应该返回什么值,为什么都输出的是 一串字符
复制代码

作者: 莫道荣    时间: 2013-3-17 12:03
  1. 你应该重写Date的toString方法,而不是Test:
  2. view source
  3. print?
  4. publicclassTest {
  5.     publicstaticvoidmain(String[] args) {
  6.         Date days[] = {newDate(1,3,7),newDate(2,3,6),newDate(3,4,7) };
  7.         for(inti =0; i < days.length; i++) {
  8.             System.out.println(days[i]);
  9.         }
  10.     }
  11. }

  12. classDate {
  13.     intyear;
  14.     intmonth;
  15.     intday;

  16.     Date(inty,intm,intd) {
  17.         year = y;
  18.         month = m;
  19.         day = d;
  20.     }
  21.      publicString toString() {
  22.         returnyear +"年"+ month +"月"+ day +"日";
  23.     }
  24. }
复制代码

作者: 聂益飞    时间: 2013-3-17 12:13
public class Test{
public static void main(String[] args){
Date days[] = {
           new Date(1,3,7),
             new Date(2,3,6),
             new Date(3,4,7)
     };
for(int i = 0;i<days.length;i++){
System.out.println(days[i]); //你这里打印的是数组对象,当然打印的是以[@开头的地址值
}
}
public String toString(){ //不是重写这里的toString
  return "qwe";
  }  
}
class Date{ //重写这里的toString便可,返回值类型String
int year; int month;int day;
Date(int y,int m, int d){
year = y;
month = m;
day = d;

}  

}

我应该返回什么值,为什么都输出的是 一串字符




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2