lzth.net
当前位置:首页 >> jAvA的toString是一个什么方法,为什么我在类中重... >>

jAvA的toString是一个什么方法,为什么我在类中重...

当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串.java中的所有类默认都有一个toString()方法 默认情况下 System.out.println(对象名)或者System.out.println(对象名.toString())输出的是此对象的类名和此对象对应内存的首地址如果想自定义输出信息必须重写toString()方法

首先还是推荐lz看源代码 简单的讲之所以调用了tostring()方法,不是什么编译器默认的,而是因为lz你调用的是out.print()方法 仔细看源代码,在pringstream类中,print方法是这样写的 public void print(object obj) { write(string.valueof(obj));

这个注意的是当null.tostring的时候,会出现异常,这个需要你小心

重写是指从父类继承后,子类对父类某方法的具体实现进行修改,不能修改其方法名 当system.out.println(对象)时,默认使用tostring()方法,将对象转为字符串输出 tostring()方法继承于所有类的隐性基类(所有类的大哥大 object类) 如果某类无重写tostring()方法,这时调用tostring()将得到(类名+地址名名)这样的字符串 改成别的方法名应该是不会出错的,是否你添加了重写标记 改成别的方法名是不能称为“重写”的

println函数在获得te参数时候做了类型转换,把testOverride class转化为String class.而转化过程,正是调用了toString函数.所以system.out.println(te)等价于system.out.println(te.toString()).

其实就是将一个对象变成字符串输出比如下图:

toString只是把字符串的直接打印,数字的要转化成字符再打印,而对象,则直接打印该对象的hash码.所以当你要想按照你想要的格式去字符串一些对象的时候,就需要重写toString了.比如一个Student对象,直接toString肯定是一个hash码.

我觉得是的,因为java是面向对象的语言,对象类中实现的 toString() 方法是返回当前对象的类型和内存地址信息(如果不重写的话)

1.包装类包装类为基本数据类型提供了相应的引用数据类型.(基本数据类型-包装类)btye-Byte,char-Character,short-Short,float-Floatint-Integer,double-Double,long-Long,boolean-Boolean2.toString()方法toString()是Object类里面的一个实

两个都重写toString了吧.你查查JDK的API就知道了.首先说一下,什么情况下要重写toString,object类里的toString只是把字符串的直接打印,数字的要转化成字符再打印,而对象,则直接打印该对象的hash码.所以当你要想按照你想要的格式

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com