关于ToString重写的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于ToString重写的问题相关的知识,希望对你有一定的参考价值。

第一个CLASS public class Student private String id; private String name; private String speciality; public Student (String id, String name, String speciality) this.id = id; this.name = name; this.speciality = speciality; public String toSring() return name+" "+id+""+speciality; 第二个CLASS import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class ArrayListDemo List<Student> eComerce1 = new ArrayList<Student>(); public synchronized void addStudent(Student student) //添加学生 eComerce1.add(student); public int getCount() //获得统计量 return eComerce1.size(); public void list() //列出全部元素 for(Student o : eComerce1) System.out.println(o); public void list(int fromIndex) //列出指定位置开始的元素 int size = eComerce1.size(); for(int i=fromIndex; i<size; i++) Student demo = eComerce1.get(i); System.out.println(demo); public void listIterator(int fromIndex) //列出指定位置迭代访问元素 ListIterator iterator = eComerce1.listIterator(fromIndex); for(;iterator.hasNext();) //Student demo = iterator.next();//为什么数据部兼容? System.out.println(iterator.next()); 第三个CLASS测试 public class Test public static void main(String[] args) //测试主函数 ArrayListDemo eComerce = new ArrayListDemo(); eComerce.addStudent(new Student("刘 佳","00001","电子商务")); eComerce.addStudent(new Student("许建龙","00002","财务会计")); eComerce.addStudent(new Student("阳水军","00003","企业物流")); eComerce.addStudent(new Student("杨 旺","00004","国际贸易")); eComerce.addStudent(new Student("唐德全","00005","企业管理")); System.out.println("目前的数据库人数:"+eComerce.getCount()); System.out.println("全局列表如下:"); eComerce.list(); System.out.println(); System.out.println("指定列表(第2个开始)如下:"); eComerce.list(2); System.out.println(); System.out.println("迭代器指定列表(第3个开始)如下:"); eComerce.listIterator(3); 为什么测试结果都是输出散列码,我要的是重写后的结果啊~55555

参考技术A 楼主笔误了,toString少打了一个t.这样写出来的方法没有复写toString方法,所以打印出的是类型加散列吗.
推荐楼主养成在重写的方法前加上注解
@Override
重写toString
则是
@Override
public
String
toString()
//代码

这样做的好处是,如果重写出的方法如果不符合重写方法的约束,比如拼写错误或者返回值类型不对或者参数有误,则IDE会报错,方便查错..希望有所帮助.

C#...何时需要重写ToString()方法?


一般类型,都是继承自System.Object类,默认情况下,object类的ToString方法会返回当前类的类型的字符串表达形式。但也有例外!!

DateTime,它就重写ToString方法,DateTime类型的实例的ToString方法返回的就是一个日期的字符串表达形式,而不是DateTime类型的字符串表达形式。

还有一种使用的情况就是,当我们有了一个Student类时,我们使用Console.WriteLine(student),将会输出 "命名空间.Student"。这是我们不想要的,我们想要输出时显示这个学生的名字,那么我们就需要重写ToString方法。

public override string ToString()
{
reutrn "张三";
}

这样,输出的结果,就会是你想要的学生名称的形式了。

以上是关于关于ToString重写的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于java的容器类 list,map等的toString()方法

java重写toString方法

java重写toString()方法

重写toString()

重写Object.toString()总结

Java 在啥情况下要重写toString