Java-toString方法

来源:互联网 发布:a星寻路算法c语言 编辑:程序博客网 时间:2024/06/05 02:26

今天复习字符串时候又想到了toString方法,感觉蛮重要的,贴一段代码先。

public class StudyToString {
String id;
public StudyToString(String id) {
 this.id=id;
}
//    public String toString() {
//    
//    
//     return id;
//    }
    public static void main(String[] args) {
StudyToString st=new StudyToString("2");
System.out.println(st);
}
}

这样打印的结果是

ProducerConsumer.StudyToString@74904497代表包名.类名@地址形式

当把代码取消注释后结果是:2

很神奇,为什么加上tostring会这样呢?

toString
public String toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())



toString 是源自java Object类,在Object 内 定义为:返回 一个 类名@hashcode的字符串,可以overridden 用来返回 你认为有用的信息, toStrng 没有arguments  override:public String toString(){ // insert you code return "informations" } 因为在java中 Object类是基类,所以每个类都会有toString方法。 System.out.println(Object)实际上就是调用 object的toString方法。 我们用的比较多的就是 String类的toString 方法,String类重写了Object的toString方法,用于返回String的字符串值。

Java中,数据类一般都要重载toString()方法,如果没有重载该方法就相当于犯了编程的大忌。下面来说说该方法的使用。

toString()方法是object里面的方法,而所有类都继承自object,所以所有对象都有这个方法。特别是在使用System.out.println(xx)这样的语句时,如果“xx”不是String类型,就会调用“xx”对象的toString()方法。

这个方法是干什么的呢?

java输出用的函数print();是不接受对象直接输出的,只接受字符串或者数字之类的输出。那么你想把一个创建好的对象拿来输出怎么办?例如:

public class A{    public String toString(){    return "this is A";    }}
  • 1
  • 2
  • 3
  • 4
  • 5
A obj=new A();System.out.println(obj);
  • 1
  • 2

会得到输出:this is A

按照print接受的类型来说,obj是不能直接输出的,那么是否代表这个是不能编译运行的呢?当然不是。因为当println检测到输出的是一个对象而不是字符或者数字时,那么它会去调用这个对象类里面的soString 方法。

即使你没有创建,因为是所有的类都是集成object类,所以自然也继承了这个方法。所以默认情况下,你输出一个对象,会调用这个对象继承的toString方法,而object里的这个方法,默认的功能是返回这个对象的名称。



toString 是源自java Object类,在Object 内 定义为:返回 一个 类名@hashcode的字符串,可以overridden 用来返回 你认为有用的信息, toStrng 没有arguments  override:public String toString(){ // insert you code return "informations" } 因为在java中 Object类是基类,所以每个类都会有toString方法。 System.out.println(Object)实际上就是调用 object的toString方法。 我们用的比较多的就是 String类的toString 方法,String类重写了Object的toString方法,用于返回String的字符串值。
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 胃ca吃饭反胃没食欲怎么办 12岁儿童脸色发黄怎么办 胃饿 但是没食欲不想吃饭怎么办 牙缝大经常塞西怎么办 吃肉老是塞牙缝怎么办 宝宝光喝奶粉不吃饭怎么办 九个月宝宝缺维c怎么办 九个月宝宝缺维d怎么办 9个月大宝宝缺锌怎么办 三周岁宝宝不爱吃饭怎么办 一周岁宝宝不爱吃饭怎么办 两岁半宝宝不自己吃饭怎么办 3岁宝宝不会吃饭怎么办 节食减肥胃疼怎么办呢 减肥不吃饭胃疼怎么办 过度节食伤了胃怎么办 3岁宝宝啥也不吃怎么办 1岁多宝宝不吃饭怎么办 胃口吃辣的难受怎么办 空腹吃辣椒胃疼怎么办 吃东西辣的胃口疼怎么办 吃辣的东西胃烧怎么办 吃母乳的宝宝不爱喝水怎么办 三个月宝宝不肯吃奶粉怎么办 三个月宝宝不肯喝奶粉怎么办 三个月的宝宝不肯喝奶粉怎么办 三个月的宝宝不肯吃奶粉怎么办 饿了还是没食欲怎么办 3岁半幼儿便秘怎么办 小孩字写得难看怎么办 小孩的字写的丑怎么办 小孩字写的太差怎么办 小孩很多字不会写怎么办 食欲不好吃不多怎么办 中班小孩子子不肯写字怎么办 1岁宝便秘该怎么办 两周的宝宝便秘怎么办 3岁宝宝不肯吃药怎么办 1岁婴儿不肯吃药怎么办 9月婴儿不肯吃药怎么办 半岁宝宝不吃药怎么办