求解一个简单的java程序。菜鸟求救!!!

linglingbaby 2009-08-13 07:33:03
昨天学了对象的数组,及利用Arrays类对数组排序,但是编写程序如下,并在eclipse里编译,无任何错误。可是运行时,竟然输出内存地址。本人菜鸟一只,刚接触java没多久,希望各位大师指教一下。

代码如下:



package hello;

import java.util.Arrays;
public class Student implements Comparable
{
int num;
String name;

Student(int num,String name)
{
this.num=num;
this.name=name;
}

public String ToString()
{
return "number="+num+","+"name="+name;
}

public int compareTo(Object o)
{
Student s=(Student)o;
return num>s.num ? 1 : (num==s.num ? 0 : -1);
}

public static void main(String args[])
{
Student[] ss=new Student[]{new Student(1,"zhangsan"),
new Student (2,"lisi"),
new Student(3,"wangwu")};
Arrays.sort(ss);
for(int m=0;m<ss.length;m++)
{
System.out.print(ss[m]);
}
}
}


输出结果为:hello.Student@190d11hello.Student@a90653hello.Student@de6ced


请问哪位大虾可以赐教?在这里先谢过了!


...全文
190 17 打赏 收藏 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
charity_2Bt 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 poimarine 的回复:]
public String ToString()

----->

public String toString()
[/Quote]方法名开头一般都是小写,如果是几个单词组合就从第二个单词开始每个单词头字母大写,俗称“驼峰标示”,呵呵!!写程序一开始要养成好习惯!
i46614161 2009-08-14
  • 打赏
  • 举报
回复
不过我也有个问题,为什么要用到compareTo方法来排序?Arrays类里面的Arrays.sort()方法不就是用来根据元素的自然顺序对指定对象数组按升序进行排序的吗?

package hello;

import java.util.*;
public class Student implements Comparable
{
int num;
String name;

Student(int num,String name)
{
this.num=num;
this.name=name;
}

public String toString()
{
return "number="+num+","+"name="+name;
}

public int compareTo(Object o)
{
Student s=(Student)o;
return num>s.num ? 1 : (num==s.num ? 0 : -1);
}

public static void main(String args[])
{
Student[] ss=new Student[]{new Student(1,"zhangsan"),
new Student (2,"lisi"),
new Student(3,"wangwu")};
Arrays.sort(ss);
for(int m=0;m <ss.length;m++)
{
System.out.print(ss[m]);
}
}
}


程序员猪佩琪 2009-08-14
  • 打赏
  • 举报
回复
把ToString方法名改为toString,重载Object的方法时,最好copy原方法名,这样100%不会出错!
i46614161 2009-08-13
  • 打赏
  • 举报
回复
重写toString方法就OK,楼主的大小写没有注意吧,你写的是ToString方法,并没有覆盖toString方法

package hello;

import java.util.Arrays;
public class Student implements Comparable
{
int num;
String name;

Student(int num,String name)
{
this.num=num;
this.name=name;
}

public String toString()
{
return "number="+num+","+"name="+name;
}

public int compareTo(Object o)
{
Student s=(Student)o;
return num>s.num ? 1 : (num==s.num ? 0 : -1);
}

public static void main(String args[])
{
Student[] ss=new Student[]{new Student(1,"zhangsan"),
new Student (2,"lisi"),
new Student(3,"wangwu")};
Arrays.sort(ss);
for(int m=0;m <ss.length;m++)
{
System.out.print(ss[m]);
}
}
}


hhmhfh 2009-08-13
  • 打赏
  • 举报
回复
重写方法要去COPY.
看马士兵的视频的时候,他老强调.
Crzjtp_AN 2009-08-13
  • 打赏
  • 举报
回复
学习学习
wzz80 2009-08-13
  • 打赏
  • 举报
回复
public String toString()
{
return "num ="+num+" name ="+name;
}


toString 与ToString是不同
aa870816 2009-08-13
  • 打赏
  • 举报
回复
重写toString()方法。。。
小神zuo 2009-08-13
  • 打赏
  • 举报
回复
toString方法名是系统内置方法名,每一个字母的大小写都不要更改,而ToString是自定义方法名。
xiaocaogf 2009-08-13
  • 打赏
  • 举报
回复
呵呵,学习,学习!!
yanliang_xt 2009-08-13
  • 打赏
  • 举报
回复
呵呵。。
linglingbaby 2009-08-13
  • 打赏
  • 举报
回复
恩,太不细心了。已经改过来了,谢谢大家的帮忙啊!
YY_MM_DD 2009-08-13
  • 打赏
  • 举报
回复
楼主方法名可要小写哦....
gesanri 2009-08-13
  • 打赏
  • 举报
回复

package hello;

import java.util.Arrays;
public class Student implements Comparable
{
int num;
String name;

Student(int num,String name)
{
this.num=num;
this.name=name;
}

public String ToString()
{
return "number="+num+","+"name="+name;
}

public int compareTo(Object o)
{
Student s=(Student)o;
return num>s.num ? 1 : (num==s.num ? 0 : -1);
}

public static void main(String args[])
{
Student[] ss=new Student[]{new Student(1,"zhangsan"),
new Student (2,"lisi"),
new Student(3,"wangwu")};
Arrays.sort(ss);
for(int m=0;m <ss.length;m++)
{
System.out.print(ss[m].ToString());
}
}
}


你定义了ToString()怎么不用
YY_MM_DD 2009-08-13
  • 打赏
  • 举报
回复
在你的方法里加个这个

public String toString()
{
return "num ="+num+" name ="+name;
}
老紫竹 2009-08-13
  • 打赏
  • 举报
回复
呵呵,楼上正解
poimarine 2009-08-13
  • 打赏
  • 举报
回复
public String ToString()

----->

public String toString()

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧